转自:
http://anna-zr.iteye.com/blog/578938
http://blog.sina.com.cn/s/blog_591e979d0100kds1.html
上次我介绍了分类器的使用方法,这次我来介绍一下聚类算法。聚类算法在数据挖掘里面被称之为无监督学习(unsupervised learning),这是与分类算法(supervised learning)相对的。在它们两者之间还一种叫做半监督学习(semi-supervised learning)这个我会在后面的文章中重点介绍。所谓无监督学习就是在预先不知道样本类别的情况下,由聚类算法来判别样本的类别的一种学习方法。
聚类算法的一般过程分为:
1. 读入需预测样本
2. 初始化聚类算法(并设置参数)
3. 使用聚类算法对样本进行聚类
4. 打印聚类结果
我们来看下面的一个实例:
package com.csdn;
import java.io.File;
import weka.clusterers.SimpleKMeans;
import weka.core.DistanceFunction;
import weka.core.EuclideanDistance;
import weka.core.Instances;
import weka.core.converters.ArffLoader;
public class SimpleCluster {
public static void main(String[] args) {
// TODO Auto-generated method stub
Instances ins = null;
Instances tempIns = null;
SimpleKMeans KM = null;
DistanceFunction disFun = null;
try{
File file= new File("C:\\Program Files\\Weka-3-6\\data\\contact-lenses.arff");
ArffLoader loader = new ArffLoader();
loader.setFile(file);
ins = loader.getDataSet();
KM = new SimpleKMeans();
//设置聚类要得到的类别数量
KM.setNumClusters(2);
KM.buildClusterer(ins);
tempIns = KM.getClusterCentroids();
System.out.println("CentroIds: " + tempIns);
}catch(Exception e){
e.printStackTrace();
}
}
}
我们可以看到读入样本的过程是与上一节的一样的方法。在构建聚类器时也是通过现有的类来实现的。现在weka的聚类算法有11种之多,我所了解的也就是一两种算法而已。SimpleKMean是最简单的KMeans算法,因为聚类算法的核心是通过距离来得到类别(类间相异,类内相似),所以需要有一个计算距离的公式常见的就是欧几里得距离了。在3.5版本中weka没有考虑其它距离公式的情况,将SimpleKMean计算距离的方法默认为欧几里得距离。在3.6中就weka提供了setDistanceFunction(DistanceFunction df)的接口可以方便我们设置自己的距离计算方法。
有一点要注意,在上面的聚类过程中,我们将样本的类别属性也放在里面了,这样做是不符合常识的,因为样本类别属性包含了大量的类别信息,可以诱导聚类算法得到很好的效果。但是这与我们的初衷是相背离的,所以在聚类之前我们要记住删除掉类别属性。
在第四步打印聚类结果是一个很简单的信息,里面包括了聚类的几个中心点。在我们写程序时,可以使用ClusterEvaluation类来打印更多的信息。
分享到:
相关推荐
标题中的“weka-src.rar”指的是Weka的数据挖掘工具的源代码压缩包,而“weka_Weka 聚类_java 数据挖掘_weka java_聚类 java”这部分描述了该软件的主要功能,即Weka在Java环境下进行数据挖掘,特别是聚类分析。Weka...
本文基于葡萄牙零售银行的数据集,使用WEKA软件对2008年至2013年的数据进行分析,以20个可能影响银行客户是否订阅定期存款的因素作为研究对象,采用不同的算法进行分类,旨在根据客户信息缩小目标客户范围,并提高...
【WEKA聚类分析实例代码】是关于使用WEKA这一强大的数据挖掘工具进行聚类分析的一个实际应用。WEKA(Waikato Environment for Knowledge Analysis)是新西兰怀卡托大学开发的一个开源数据挖掘软件,它提供了丰富的...
在数据分析和机器学习领域,Weka 是一个广泛使用的开源工具,它提供了丰富的数据预处理、分类、回归、聚类和关联规则挖掘等算法。在这个场景中,我们关注的是"Weka 用于文旦聚类",这表明我们将使用Weka来执行一种...
一个我本人写的关天Weka.jar工具包中各种聚类算法的调用的java源程序
这意味着EM算法在Weka中不仅仅作为一种独立的聚类方法存在,还能够与SimpleKMeans结合使用,提供更加灵活的聚类解决方案。值得注意的是,EM算法在Weka中的实现不仅考虑了算法本身的特性,还充分考虑了数据预处理的...
在WEKA中,主要使用ARFF文件格式存储数据。ARFF文件是一种文本文件,用于存储结构化的数据集,包括属性(特征)和实例(样本)。每个属性都有一个名称和数据类型,如数值型、字符串型或离散型。实例则是一组属性值的...
仿照weka自带的简单K均值聚类算法,实现的一个简单的模糊C均值聚类算法。
“个人推荐的Weka教程,包含了数据格式、数据准备、分类和聚类Demo” 这个标题表明这是一个关于Weka的数据挖掘工具的教程,它涵盖了数据预处理的基本步骤,包括数据格式的理解、数据准备的技巧,以及核心的机器学习...
K-Means 算法是聚类分析中的一种常用方法,WEKA 作为一款功能强大的人工智能数据挖掘软件,也提供了 K-Means 算法的实现。下面将详细介绍如何使用 WEKA 实现 K-Means 聚类。 K-Means 算法概述 K-Means 算法是一种...
例如,在Java中使用Weka库进行聚类,可以创建一个`SimpleKMeans`对象,设置聚类数目,并利用`buildClusterer()`方法对`Instances`对象进行聚类。最后,通过`getClusterCentroids()`获取聚类中心并打印出来。 Weka是...
本实验报告的主要目标是通过使用Weka中的三种常见分类和聚类方法,分别是决策树J48、KNN和K-means,对数据进行分类和聚类分析,并对各个模型进行评估和比较。 在实验中,我们首先将数据从Excel文件转换为CSV文件,...
【基于Weka的数据分类和聚类分析实验报告】 在数据科学和机器学习领域,Weka是一个广泛使用的开源工具,它提供了各种数据预处理、分类、聚类和回归算法。本实验报告主要关注如何使用Weka进行数据分类和聚类,并通过...
本工具包集成了Weka中最新的分类和聚类算法,将其打包成jar包,方便java开发者调用
非常实用的数据挖掘工具包
在实验三中,学生进一步使用WEKA进行了关联规则分析和聚类分析。关联规则挖掘用于发现数据项之间的有趣关系,如购物篮分析;聚类分析则是无监督学习的一种,目的是根据数据的相似性将数据分组成不同的类别。 实验四...