数据挖掘入门实验(weka)

时间:2024-03-31 10:47:11
实验1:基于Weka的典型数据挖掘应用
学号: 姓名: XXXX 专业: 计算机系统结构 班级:
实验目标
理解数据挖掘的基本概念,掌握基于Weka工具的基本数据挖掘(分类、回归、聚类、关联规则分析)过程。
实验内容
  1. 下载并安装Java环境(JDK 7.0 64位)。
  2. 下载并安装Weka 3.7版。
  3. 基于Weka的数据分类。
  4. 基于Weka的数据回归。
  5. 基于Weka的数据聚类。
  6. 基于Weka的关联规则分析。
实验步骤
注意:在空白处补充实验过程的截图及文字说明,空间不够可自行扩展。
  1. 下载并安装Java环境(JDK 7.0 64位)
  1. 搜索JDK 7.0 64位版的下载,下载到本地磁盘并安装。
数据挖掘入门实验(weka)
  1. 配置系统环境变量PATH,在末尾补充JDK安装目录的bin子目录,以便于在任意位置都能执行Java程序。
数据挖掘入门实验(weka)
验证安装完成:
数据挖掘入门实验(weka)
数据挖掘入门实验(weka)
  1. 下载并安装Weka 3.7版
数据挖掘入门实验(weka)


  1. 基于Weka的数据分类
  1. 读取“电费回收数据.csv”(逗号分隔列),作为原始数据。
数据挖掘入门实验(weka)
数据挖掘入门实验(weka)

实验开始前,应先去除掉一些在分析中无用的数据
将数据中没有差异的属性去除:
  1. WZCS(违章用电次数)的数据全为0,对于分析没有什么帮助,因此一开始就先
去除。
  1. CUISHOU_COUNT(催交次数)的数据全为0,因此去除。
  2. CONS_NO(编号)该数据只是为了标识不同用户信息,对于电费回收的分析不起
作用,因此去除。
  1. YMD(日期)
  2. RCVED_DATE(实收日期)
TQSC(欠费时长)可以用欠费日期及实收日期计算得出,因此可将YMD、RCVED_DATE这两个属性删去。

  1. 数据预处理:
    1. 将数值型字段规范化至[0,1]区间。
数据挖掘入门实验(weka)

下面为规范化后的数据:
数据挖掘入门实验(weka)

  1. 调用特征选择算法(Select attributes),选择关键特征。
法一:
根据属性子集中每一个特征的预测能力以及它们之间的关联性进行评估,因此采取CfsSubsetEval来实现选取,实验结果如下:
(从剩余的9个属性中选取出了1个关键属性,即TQSC(欠费时长))
数据挖掘入门实验(weka)
法二:
利用属性增益来选取关键属性,即用InfoGainAttributeEval方法结果如下:
根据结果的话,应选取TQSC(欠费时长)、PAY_MODE(缴费方式)两个关键属性。
数据挖掘入门实验(weka)

  1. 分别使用决策树(J48)、随机森林(RandomForest)、神经网络(MultilayerPerceptron)、朴素贝叶斯(NaiveBayes)等算法对数据进行分类,取60%作为训练集,记录各算法的查准率(precision)、查全率(recall)、混淆矩阵与运行时间。

在处理前,由于数据量较大,先进行离散化处理
数据挖掘入门实验(weka)

  1. 决策树(J48)
查准率、查全率:
数据挖掘入门实验(weka)

混淆矩阵:
数据挖掘入门实验(weka)

运行时间:
数据挖掘入门实验(weka)


B.随机森林(RandomForest)

查准率、查全率:
数据挖掘入门实验(weka)

混淆矩阵:
数据挖掘入门实验(weka)

运行时间:
数据挖掘入门实验(weka)


C.神经网络(MultilayerPerceptron)

查准率、查全率:
数据挖掘入门实验(weka)

混淆矩阵:
数据挖掘入门实验(weka)

运行时间:
数据挖掘入门实验(weka)
  1. 基于Weka的回归分析
  1. 读取“配网抢修数据.csv”,作为原始数据。
读取数据:
数据挖掘入门实验(weka)

  1. 数据预处理:
    1. 将数值型字段规范化至[0,1]区间。

规范化后的数据:
数据挖掘入门实验(weka)

  1. 调用特征选择算法(Select attributes),选择关键特征。

需要先对数据处理后才能进行关键特征的选取
处理的过程:
先剔除无关属性(如年月日、地区编号)
再将属性FAULT_COUNT_TOTAL(总故障量)列为标签
将所有的数据离散化处理
之后便开始调用方法:
  1. 使用InfoGainAttributeEval进行关键特征的选择
数据挖掘入门实验(weka)
  1. 使用CfsSubsetEval进行关键特征的选择
数据挖掘入门实验(weka)

综上两种做法,应选择HIGH_TEMP(开始气温)、LOW_TEMP(结束气温)、MIN_VALUE(负荷最小值)、RAIN_PROBABILITY(降雨概率)四项作为关键特征。

  1. 分别使用随机森林(RandomForest)、神经网络(MultilayerPerceptron)、线性回归(LinearRegression)等算法对数据进行回归分析,取60%作为训练集,记录各算法的均方根误差(RMSE,Root Mean Squared Error)、相对误差(relative absolute error)与运行时间。

A.随机森林(RandomForest)

均方根误差(RMSE,Root Mean Squared Error)、相对误差(relative absolute error):
数据挖掘入门实验(weka)
运行时间:
数据挖掘入门实验(weka)
B.神经网络(MultilayerPerceptron)

均方根误差(RMSE,Root Mean Squared Error)、相对误差(relative absolute error):
数据挖掘入门实验(weka)
运行时间:
数据挖掘入门实验(weka)


C.线性回归(LinearRegression)

均方根误差(RMSE,Root Mean Squared Error)、相对误差(relative absolute error):
数据挖掘入门实验(weka)
运行时间:
数据挖掘入门实验(weka)
  1. 基于Weka的数据聚类
  1. 读取“移动客户数据.tsv”(TAB符分隔列),作为原始数据。

由于weka无法读入“.tsv”格式的文件,因此要先将文件转成“.csv”格式才能正常读取
数据挖掘入门实验(weka)


  1. 数据预处理:
    1. 将数值型字段规范化至[0,1]区间。
数据挖掘入门实验(weka)
    b. 调用特征选择算法(Select attributes),选择关键特征。
数据挖掘入门实验(weka)

从实验结果来看关键特征有20个,分别为:
AGE(年龄)
OCCUPATION(职业)
IS_GROUP_USER(是否为集团成员)
IS_OUT_USER(是否外来工)
IS_HIGH_USER(是否中高端)
AVG_3_CALL_CNT(前三个月平均语音总话单数)
AVG_3_FCALL_CNT(前三个月平均语音呼转总话单数)
CUR_CALL_RATE(语音计费时长当前月与前2月均值比)
AVG_3_PTP_CNT(前三个月平均点对点短信发送条数)
CUR_TNET_RATE(Gprs-T流量当前月与前2月均值比)
IS_HING_FLU_USER(是否流量高价值用户)
CUR_GEN_AMOUNT_RATE(消费金额当前月与前2月均值比)
INCREMENT_LLM_RATE(增值业务费当前月与前2月均值比)
IS_HARD_BIND(是否硬捆绑)
BINGDING_LEAVE_MONTH( 定制终端捆绑剩余月份)
CHANGE_INURE_DATE(当前终端换机时间)
CHANGE_CNT(换机次数)
IS_LIKE_INTELLIGENT(智能手机偏好者)
DZSW_CNT(电子商务次数)
JSTX_CNT(即时通讯次数)

  1. 分别使用K均值(SimpleKMeans)、期望值最大化(EM)、层次聚类(HierarchicalClusterer)等算法对数据进行聚类,记录各算法的聚类质量(sum of squared errors)与运行时间。
  1. K均值(SimpleKMeans)

聚类质量(sum of squared errors):
数据挖掘入门实验(weka)
运行时间:
数据挖掘入门实验(weka)


B.期望值最大化(EM)

聚类质量(sum of squared errors):
数据挖掘入门实验(weka)
运行时间:
数据挖掘入门实验(weka)

C.层次聚类(HierarchicalClusterer)

聚类质量(sum of squared errors):

运行时间:

  1. 基于Weka的关联规则分析
  1. 读取“配网抢修数据.csv”,作为原始数据。
数据挖掘入门实验(weka)
  1. 数据预处理:
    1. 将数值型字段规范化至[0,1]区间。
数据挖掘入门实验(weka)

  1. 调用特征选择算法(Select attributes),选择关键特征。
数据挖掘入门实验(weka)
关键特征为:
HIGH_TEMP(最高气温)、MAX_VALUE(负荷最大值)、MIN_VALUE(负荷最小值)



  1. 使用Apriori算法对数值型字段进行关联规则分析,记录不同置信度(confidence)下算法生成的规则集。
置信度confidence=0.9
数据挖掘入门实验(weka)
置信度confidence=0.8
数据挖掘入门实验(weka)
置信度confidence=0.7
数据挖掘入门实验(weka)
置信度confidence=0.6
数据挖掘入门实验(weka)


置信度confidence=0.5
数据挖掘入门实验(weka)
置信度confidence=0.4
数据挖掘入门实验(weka)

置信度confidence=0.3
数据挖掘入门实验(weka)
置信度confidence=0.2
数据挖掘入门实验(weka)
置信度confidence=0.1
数据挖掘入门实验(weka)
置信度confidence=0
数据挖掘入门实验(weka)