数据挖掘实验:实验报告
一、实验说明及目的
1、使用真实数据进行数据挖掘实验,实验前进行数据的预处理。
2、训练一些不同类型的模型(具体类型可以讨论),与此同时分析哪些参数将对支持向量机(SVM)模型的性能产生影响。
3、通过实验来分析预测,将其他一些属性作为森林覆盖类型(Cover_Type 属性)的模型输入所产生的效果。原始数据和数据的描述见网址/databases/covertype/covertype.html
4、该实验将使学生理解完成一次真实数据预处理以及在数据挖掘过程中对属性、数据覆盖类型等方面的分析工程。
二、实验具体任务及其说明
1、数据预处理工作
(1)数据样本的生成:根据原始数据集生成统一的随机样本,样本数据量大约是原始数据量的10%,要求使用不重复抽样。(任务1)
(2)森林覆盖值的映射:变换不同种类的属性,将森林覆盖值2映射到0,将其他值所有森林覆盖值(1,3,4,5,6,7)映射到1。(任务2)
(3)数据预处理技巧:自行决定是否需要其他的数据预处理,注意某些Weka软件的使用技巧,如一些输入输出格式问题。有时某些方法也做必要的调整,在某些情况下必须对数据有明确的预处理,做数据预处理时可以查看Weka软件针对该技巧或方法的描述。
(4)预处理说明:原始数据集非常大,具有7种类型的森林覆盖,检查整个数据集装载到Weka软件是发生的情况,如果机器内存耗尽,可以尽量增大堆的大小试试。Weka使用指南对此有描述如何操作。)2、模型训练工作
(1)使用Weka分类器的评价工具进行预测。使用Na?ve Bayes分类器对抽样样本进行训练以预测变换的森林覆盖类型(即是映射到种类0还是1),使用10层交叉验证来评估变换的模型,Weka软件中自带有对其分类器的表现评价器,使用自带的评价器来确定变换模型的精确度和变动率指标(ROC)。(任务3)
(2)对SVM模型进行训练:使用Weka软件的SMO分类器对支持向量机(SVM)模型进行训练,训练2种形式的SVM模型,一种是带多项式核函数的SVM模型,另一种是带径向基核函数(RBF Kernel)的SVM模型。训练时所有的参数均使用默认值,分析并确定这些模型的精确度和变动率指标(ROC)。对SVM模型进行所有的抽样样本进行训练可能会很慢,所以对抽样样本进行分割,即使用1/20的抽样样本数据(或者1/200的原始数据集)进行训练,使用19/20的抽样样本进行测试。(任务4)
(3)对SVM模型训练后进行评估:使用至多1/20的抽样数据进行训练,以找出带RBF核函数的SVM最好的表现情况。改变参数复杂度参数C和参数gamma(在Weka中针对RBF核函数也有一个参数C,该参数将不改变),使用一个等比数列的值分析这2个参数同时变化时产生的影响,看看这2个参数同时比默认情况下大一些或小一些的情况,以找出最佳的参数设置。分析并确定所有SVM模型的精确度和变动率指标(ROC)。(注意:如果使用1/20的抽样样本数据量来训练各自的SVM模型超过30分钟,可以进一步减少样本数据量以避免计算资源的耗尽,在提交的实验报告中可以记录这些样本数据的具体训练时间)(任务5)
三、实验结果的提交说明
1、描述所有的数据预处理步骤。
(1)在使用Weka软件的知识流工具时,提交其中的工作流图示,并对工作流中所有参数设置进行阐述。
(2)提交产生抽样样本数据的代码并对代码进行适当的注释说明,还可以描述产生的样本有多少元组等。
2、描述怎样训练和评估Na?ve Bayes模型。
(1)在使用Weka软件的知识流工具时,提交其中的工作流图示,并对工作流中所有参数设置进行阐述。
(2)给出模型的训练时间、精确度和变动率指标范围。
3、描述怎样训练和评估上述2个SVM模型。
(1)给出模型的训练时间、精确度和变动率指标范围。
4、给出所有(C,gamma)参数组合序列,针对每个组合给出模型训练时间、精确度和变动率指标范围。讨论那个参数组合是最佳的。
5、给出训练后Na?ve Bayes模型的ROC曲线和SVM模型的最佳ROC曲线,可以使用Weka软件的“Model Performance Chart”工具去实现,提供软件中“Classifier Performance Evaluator”合适的输出作为该工具的输入。
四、实验步骤及相关结果
1、任务1的具体实验步骤
(1)使用C程序生成抽样样本数据:
#include
#include
int main()
{
int i;
FILE *fp1;
FILE *fp2;
char msg[200];
fp1=fopen(".\\covtype.data\\covtype.txt","r");
fp2=fopen(".\\co