理解数据挖掘的基本概念,掌握基于Weka工具的基本数据挖掘(分类、回归、聚类、关联规则分析)过程。
- 下载并安装Java环境(JDK 7.0 64位)。
- 下载并安装Weka 3.7版。
- 基于Weka的数据分类。
- 基于Weka的数据回归。
- 基于Weka的数据聚类。
- 基于Weka的关联规则分析。
1.下载并安装Java环境(JDK 7.0 64位)
(1)搜索JDK 7.0 64位版的下载,下载到本地磁盘并安装。
(2)配置系统环境变量PATH,在末尾补充JDK安装目录的bin子目录,以便于在任意位置都能执行Java程序。
2.下载并安装Weka 3.7版
3.基于Weka的数据分类
(1)读取“电费回收数据.csv”(逗号分隔列),作为原始数据。
读取文件后,将一些对数据分析无用的属性删除。
首先,删除CONS_NO(用户编号),用户编号是用来标识用户的,对数据分析没用。
然后,发现TQSC(欠费时长)为YMD(年月日)与RCVED_DATE(实收日期)之差,故删去YMD与RCVED_DATE。
其次,CUISHOU_COUNT(催收次数)全为0,删去;YM(年月)对数据分析无用,删去。
(2) 数据预处理:
a)将数值型字段规范化至[0,1]区间。
在Filter中选择weka.filters.unsupervised.attribute.Normalize,进行归一化。归一化的数据如下图所示。
b)调用特征选择算法(Select attributes),选择关键特征。
评价策略使用CfsSubsetEval,它根据属性子集中每一个特征的预测能力以及它们之间的关联性进行评估。
搜索方法使用BestFirst。
得到两个关键特征,分别为RCVED_AMT(实收金额)与TQSC(欠费时长)。
(3)分别使用决策树(J48)、随机森林(RandomForest)、神经网络(MultilayerPerceptron)、朴素贝叶斯(NaiveBayes)等算法对数据进行分类,取60%作为训练集,记录各算法的查准率(precision)、查全率(recall)、混淆矩阵与运行时间。
对数据进行分类,首先要对其进行离散化。
在Filter中选择weka.filters.unsupervised.attribute.Discretize,进行离散化。
对数据分类,需要数据为Nominal类型,但此时IS_BAD还是Number类型,在Filter中选择weka.filters.unsupervised.attribute.NumericToNominal进行类型转换。
(a)决策树(J48)
查准率:0.838
查全率:0.807
混淆矩阵:
运行时间:2.27s
(b)随机森林(RandomForest)
查准率:0.837
查全率:0.807
混淆矩阵:
运行时间:67.04s
(c)神经网络(MultilayerPerceptron)
(d)朴素贝叶斯(NaiveBayes)
查准率:0.837
查全率:0.807
混淆矩阵:
运行时间:0.57s
4.基于Weka的回归分析
(1)读取“配网抢修数据.csv”,作为原始数据。
读取文件后,将一些对数据分析无用的属性删除,如:YMD(年月日)、REGION_ID(地区编号)
(2)数据预处理:
a)将数值型字段规范化至[0,1]区间。
在Filter中选择weka.filters.unsupervised.attribute.Normalize,进行归一化。归一化的数据如下图所示。
b)调用特征选择算法(Select attributes),选择关键特征。
评价策略使用CfsSubsetEval,搜索方法使用BestFirst。
得到三个关键特征,分别为HIGH_TEMP(开始气温)、MAX_VALUE(负荷最大值)和MIN_VALUE(负荷最小值)。
(3)分别使用随机森林(RandomForest)、神经网络(MultilayerPerceptron)、线性回归(LinearRegression)等算法对数据进行回归分析,取60%作为训练集,记录各算法的均方根误差(RMSE,Root Mean Squared Error)、相对误差(relative absolute error)与运行时间。
对数据进行回归分析前,先进行离散化。
在Filter中选择weka.filters.unsupervised.attribute.Discretize,进行离散化。
(a)随机森林(RandomForest)
均方根误差:108.7096
相对误差:18.7344%
运行时间:0.41s
(b)神经网络(MultilayerPerceptron)
均方根误差:134.6398
相对误差:29.0789%
运行时间:0.76s
(c)线性回归(LinearRegression)
均方根误差:144.0997
相对误差:30.2385 %
运行时间:0.01s