svm算法实验实验报告.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
svm算法实验实验报告

svm算法实验实验报告 篇一:SVM实验报告 SVM分类算法 一、 数据源说明 1、 数据源说远和理解: 采用的实验数据源为第6组:The Insurance Company Benchmark (COIL 2000) TICDATA2000.txt: 这个数据集用来训练和检验预测模型,并且建立了一个5822个客户的记录的描述。每个记录由86个属性组成,包含社会人口数据(属性1-43)和产品的所有关系(属性44-86 )。社会人口数据是由派生邮政编码派生而来的,生活在具有相同邮政编码地区的所有客户都具有相同的社会人口属性。第86个属性:“大篷车:家庭移动政策” ,是我们的目标变量。共有5822条记录,根据要求,全部用来训练。 TICEVAL2000.txt: 这个数据集是需要预测( 4000个客户记录)的数据集。它和TICDATA2000.txt它具有相同的格式,只是没有最后一列的目标记录。我们只希望返回预测目标的列表集,所有数据集都用制表符进行分隔。共有4003(自己加了三条数据),根据要求,用来做预测。 TICTGTS2000.txt:最终的目标评估数据。这是一个实际情况下的目标数据,将与我们预测的结果进行校验。我们的预测结果将放在result.txt文件中。 数据集理解:本实验任务可以理解为分类问题,即分为2类,也就是数据源的第86列,可以分为0、1两类。我们首先需要对TICDATA2000.txt进行训练,生成model,再根据model进行预测。 2、 数据清理 代码中需要对数据集进行缩放的目的在于: A、避免一些特征值范围过大而另一些特征值范围过小; B、避免在训练时为了计算核函数而计算内积的时候引起数值计算的困难。因此,通常将数据缩放到 [ -1,1] 或者是 [0,1] 之间。 二、 数据挖掘的算法说明 1、 svm算法说明 LIBSVM软件包是台湾大学林智仁(Chih-Jen Lin)博士等用C++实现的SVM库,并且拥有matlab,perl等工具箱或者代码,移植和使用都比较方便.它可以解决分类问题(包括C-SVC、n-SVC)、回归问题(包括e-SVR、n-SVR)以及分布估计(one-class-SVM )等问题,提供了线性、多项式、径向基和S形函数四种常用的核函数供选择,可以有效地解决多类问题、交叉验证选择参数、对不平衡样本加权、多类问题的概率估计等。 2、 实现过程 在源程序里面,主要由以下2个函数来实现: (1) struct svm_model *svm_train(const struct svm_problem *prob, const struct svm_parameter *param); 该函数用来做训练,参数prob,是svm_problem类型数据,具体结构定义如下: struct svm_problem //存储本次参加运算的所有样本(数据集),及其所属类别。 { int n; //记录样本总数 double *y; //指向样本所属类别的数组 struct svm_node **x; //指向一个存储内容为指针的数组 }; 其中svm_node的结构体定义如下: struct svm_node //用来存储输入空间中的单个特征 { int index; //输入空间序号,假设输入空间数为m double value; //该输入空间的值 }; 所以,prob也可以说是问题的指针,它指向样本数据的类别和输入向量,在内存中的具体结构图如下: 图1.1LIBSVM训练时,样本数据在内存中的存放结构 只需在内存中申请n*(m+1)*sizeof(struct svm_node)大小的空间,并在里面填入每个样本的每个输入空间的值,即可在程序中完成prob参数的设置。 参数param,是svm_parameter数据结构,具体结构定义如下: struct svm_parameter // 训练参数 { int svm_type; //SVM类型, int kernel_type; //核函数类型 int degree; /* for poly */ double gamma; /* for poly/rbf/sigmoid */ double coef0; /* for poly/sigmoid */ /* these are for training only */ double cache_size; /* in MB 制定训练所需要的内存*/ double eps; /* stopping criteria */ double C; /* for C_SVC, EPSILON_

文档评论(0)

1045141460 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档