《数据挖掘基础》实验:Weka平台实现聚类算法

实验目的

进一步理解聚类算法(K-平均、PAM、层次聚类、密度聚类),利用weka实现数据集的聚类处理,学会调整模型参数,以图或树的形式给出挖掘结果,并解释规则的含义。

实验要求

(1)随机选取数据集(UCI或data文件夹),需要做预处理的,单独说明处理过程。完成以下内容:(用四种方法:K-means、K-中心法、层次、密度)

  • 文件导入与编辑
  • 参数设置说明
  • 结果截图
  • 结果分析与对比

(2)以AQI.xls中1-550数据为训练数据集,用三种方法聚类,对比结果;以551-599为测试数据集,做模型评估,检验模型的正确性。

  • 文件生成与编辑
  • 参数设置说明
  • 结果截图
  • 结果分析

weather数据集

1. 文件导入与编辑

单击Open file打开data文件夹,选择weather.nominal.arff文件,导入到weka中,如图1所示。

图1 weather数据集

图1 weather数据集

2. 参数设置说明

2.1 K-means算法

参数设置如下图2,其中numClusters表示簇的个数,设置为6。

图2 K-means参数设置

图2 K-means参数设置

2.2 PAM算法

参数设置如下图3, numClusters设置为6。

图3 PAM参数设置

图3 PAM参数设置

2.3 层次聚类算法

参数设置如下图4, 簇的个数设置为6。

图4 层次聚类参数设置

图4 层次聚类参数设置

2.4 密度聚类算法

参数设置如下图5。

图5 密度聚类参数设置

图5 密度聚类参数设置

3. 结果截图

K-means算法结果如图6所示,PAM算法结果如图7所示,层次聚类算法结果如图8所示,密度聚类算法结果如图9所示。

图6 K-means算法结果

图6 K-means算法结果

图7 PAM算法结果

图7 PAM算法结果

图8 层次聚类算法结果

图8 层次聚类算法结果

图9 密度聚类算法结果

图9 密度聚类算法结果

4. 结果分析

K-means算法聚类起点为:
Cluster 0: rainy, mild, normal, FALSE, yes
Cluster 1: overcast, cool, normal, TRUE, yes
Cluster 2: rainy, mild, high, TRUE, no
Cluster 3: overcast, hot, high, FALSE, yes
Cluster 4: overcast, hot, normal, FLASE, yes
Cluster 5: sunny, hot, high, TRUE, no
最终集群质心为:
最终集群质心

PAM集群质心为:
PAM集群质心

层次聚类算法结果与密度聚类算法结果未直观的读出。
比较K-means算法与PAM算法结果,可以发现初始Cluster 3完全一致,
K-means中的Cluster 0与PAM中Cluster 2、Cluster 4只有一个属性不一致,还有类似的有一个属性不一致的簇。从分析来看,两种聚类方法结果有一定的相似性。

AQI数据集

1. 文件生成与编辑

将表格中序号为1-550号的数据写入到一个csv文件中,如图10所示,作为测试数据集,序号为551-599号的数据写入另一个csv文件中,如图11所示,作为测试数据集。

图10 训练数据集

图10 训练数据集

图11 测试数据集

图11 测试数据集

通过weka的Open file功能导入刚刚生成的训练数据集,用上述聚类算法做聚类,在Test options中选择Use training set按钮如图12所示。

图12 训练数据集选择

图12 训练数据集选择

接着选择Supplied test set按钮,并单击Set按钮,弹出如图13所示弹窗,单击Open files选择生成的测试数据集,用测试数据集,做模型评估,检验模型的正确性。

图13 测试数据集导入

图13 测试数据集导入

2. 参数设置说明

参数值的设置及说明同上。

3. 结果截图

3.1 K-means算法

训练数据聚类结果如图14所示。

图14 K-means算法训练集结果

图14 K-means算法训练集结果

测试数据聚类结果如图15所示。

图15 K-means算法测试集结果

图15 K-means算法测试集结果

3.2 PAM算法

训练数据聚类结果如图16所示。

图16 PAM算法训练集结果

图16 PAM算法训练集结果

测试数据聚类结果如图17所示。

图17 PAM算法测试集结果

图17 PAM算法测试集结果

3.3 层次聚类算法

训练数据聚类结果如图18所示。

图18 层次聚类算法训练集结果

图18 层次聚类算法训练集结果

测试数据聚类结果如图19所示。

图19 层次聚类算法测试集结果

图19 层次聚类算法测试集结果

3.4 密度聚类算法

训练数据聚类结果如图20所示。

图20 密度聚类算法训练集结果

图20 密度聚类算法训练集结果

测试数据聚类结果如图21所示。

图21 密度聚类算法测试集结果

图21 密度聚类算法测试集结果

4. 结果分析

K-means算法测试集数据属于训练集生成的簇0、1、2、5;
PAM算法测试集数据属于训练集生成的簇0、2、3、4;
层次聚类算法测试集数据属于训练集生成的簇0、1、2、4;
密度聚类算法测试集数据属于簇0的占82%,簇1的占18%。

  • 11
    点赞
  • 129
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Weka是一个非常强大的机器学习软件,它提供了丰富的算法和工具,可以方便地进行数据挖掘机器学习任务。其中包括了K均值聚类算法,可以通过Java编程来实现。 Java实现K均值聚类需要以下步骤: 1. 导入Weka库:在Java程序中,首先需要导入Weka库。可以通过在代码中引入相应的Weka库来实现。例如可以导入weka.core和weka.clusterers两个库。 2. 读取数据集:使用Weka提供的库,可以方便地读取数据集。可以使用weka.core.Instances类来读取和存储数据集,通过加载数据文件,将数据集保存到实例对象中。 3. 设置聚类参数:在进行聚类之前,需要设置相应的聚类参数。对于K均值聚类算法,需要设置簇的数量K,以及其他一些参数,例如最大迭代次数等。 4. 运行聚类算法:使用weka.clusterers包下的SimpleKMeans类,可以方便地实现K均值聚类算法。使用这个类可以对数据集进行聚类操作,可以通过设置相关参数进行聚类,例如设置聚类的簇心数量、迭代次数等。 5. 输出聚类结果:聚类完成后,可以通过聚类模型获得每个数据点所属的簇类别。可以通过获取每个实例的聚类编号,将数据点对应的聚类结果进行输出,用于后续的分析和应用。 以上就是通过Java实现K均值聚类的大致步骤。通过调用Weka提供的聚类算法和工具类,可以方便地实现K均值聚类,并从中获取聚类结果。Java语言提供了强大的编程能力,结合Weka算法和工具,可以在数据挖掘机器学习任务中发挥较大的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lazyn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值