现在的位置: 首页 > 综合 > 正文

把玩数据挖掘之分类实验(上)

2012年05月10日 ⁄ 综合 ⁄ 共 2126字 ⁄ 字号 评论关闭

好久没有写博了~~~这几年一直在读在职研究生,一晃也快毕业了,坑爹的数据挖掘课,老师要我们做大作业,天晓得本瓶子上课都在睡觉有木有!!好在,现在的瓶子已经不是过去的瓶子了,花了两天时间,整了这份实验报告~~~觉得颇为得意,拿上来显摆一下~~~

(1)   数据准备与预处理

在进行数据挖掘之前,我们首先要对需要挖掘的样本数据进行预处理,预处理包括以下步骤:

1、  数据准备,格式统一。将样本转化为等维的数据特征(特征提取),让所有的样本具有相同数量的特征,同时兼顾特征的全面性和独立性

2、  选择与类别相关的特征(特征选择)

3、  建立数据训练集和测试集

4、  对数据集进行数据清理

 

在本次实验中,我们选择了ILPD (IndianLiver Patient Dataset)这个数据集,该数据集已经具有等维的数据特征,主要包括Age、Gender、TB、DB、Alkphos、Sgpt、Sgot、TP、ALB、A/G、classical,一共11个维度的数据特征,其中与分类类别相关的特征为classical,它的类别有1,2两个值。

详见下表:

本实验的主要思路是将该数据集分成训练集和测试集,对训练集进行训练生成模型,然后再根据模型对测试集进行预测。

 

数据集处理实验详细过程:

 

CSV数据源处理

由于下载的原始数据集文件Indian Liver Patient Dataset (ILPD).csv(见下图)中间并不包含属性项,这不利于之后分类的实验操作,所以要对该文件进行处理,使用Notepad文件,手动将属性行添加到文件首行即可。

平台数据集格式转换

在后面数据挖掘的实验过程中,我们需要借助开源数据挖掘平台工具软件weka,该平台使用的数据集格式为arff,因此为了便于实验,在这里我们要对csv文件进行格式转换,转换工具为weka自带工具。转换过程为:

1、  打开weka平台,点击”Simple CLI“,进入weka命令行界面,如下图所示:

 

2、  输入命令将csv文件导成arff文件,如下图所示:

3、  得到arff文件如下图所示:

                   内容如下:

 

建立数据训练集、校验集和测试集





通过统计数据信息,可知整个数据集带有classical标号的数据一共有583行,为了避免数据的过度拟合,我们要把数据训练集、校验集、测试集分开。在本次实验中,我们的拆分策略是训练集500行,校验集和测试集83行,由于数据集中有416行的classical标识为1,167行的classical标识为2,为了能在训练分类模型时有更加全面的信息,我们将167条classical标识为2与333行classical标识为1的数据全部作为模型训练集,而剩下的83条classical为1的数据将全部用于测试集,这是因为在校验的时候,两种类标号的数据作用区别不大,但是在训练数据模型是,需要更加全面的信息,特别是不同类标号的数据的合理比例对训练模型的质量有较大的影响。

在做预测测试之前,需要将测试集的分类标号去掉作为预测数据集。

 

数据训练集、校验集和测试集建立步骤:

1、  复制原始数据集arff文件,作为总的训练数据集,文件名称改为build_model.arff。如下图所示:

2、  根据拆分策略,从原始数据集DataSet_original.arff文件中的数据里面,选取分类标号为1的数据83作为校验数据集,该数据集文件名为validate_data.arff。

3、  将剩下的DataSet_orginal.arff文件改名为train_data.arff

4、  由于原始数据集都是有类标号的数据集,为了方便进行预测测试,我们将校验数据集复制一份后,将分类标号去掉加入?,作为预测数据集。如图所示:

 

数据清理

在进行数据搜集和整理的过程中,我们发现如果属性的类型为数值型的话,在做关联分析时将不能得到结果,因为关联分析无法处理数值型数据。由于现实世界中数据大体上都是不完整,不一致的脏数据,无法直接进行数据挖掘或挖掘结果差强人意。为了提高数据挖掘的质量,需要对数据进行预处理,预处理有多种方法:数据清理、数据集成、数据变换、数据归约等。

常用的数据清理主要分为两类:空缺值的处理和噪声数据处理。空缺值处理主要是使用最可能的值填充空缺值,比如可以用回归、贝叶斯形式化方法工具或判定树归纳等确定空缺值。这类方法依靠现有的数据信息来推测空缺值,使空缺值有更大的机会保持与其他属性之间的联系。同时还可以用一个全局常量替换空缺值、使用属性的平均值填充空缺值或将所有元组按某些属性分类,然后用同一类中属性的平均值填充空缺值。不过这些方法有局限性,当空缺值很多的情况下,这些方法的使用可能会误导挖掘结果;除了空缺值处理还有噪声数据处理,噪声是一个测量变量中的随机错误或偏差,包括错误的值或偏离期望的孤立点值。常用分箱、回归、计算机检查和人工检查结合、聚类等方法进行噪音处理。

在本次试验中,我们对数据集进行了数据处理后使得需要分析的数据变为分类型,这样就可以关联分析得以顺利进行,在具体执行的过程中我们利用了weka平台自带的数据预处理库实现数据预处理。具体实验过程见下文。

抱歉!评论已关闭.