首页 > 代码库 > weka学习(聚类算法)
weka学习(聚类算法)
聚类算法在数据挖掘里面被称之为无监督学习(unsupervised learning),这是与监督学习(supervised learning)相对的。在它们两者之间还一种叫做半监督学习(semi-supervised learning)
聚类算法的一般过程分为:
- 1. 读入需预测样本
- 2. 初始化聚类算法(并设置参数)
- 3. 使用聚类算法对样本进行聚类
- 4. 打印聚类结果
实例:
package weka2;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{ /* * 1.读入样本 */ File file= new File("D:\\work\\Weka-3-6\\data\\contact-lenses.arff"); ArffLoader loader = new ArffLoader(); loader.setFile(file); ins = loader.getDataSet(); /* * 2.初始化聚类器 * 在3.6版本可以通过setDistanceFunction(DistanceFunction df) * 函数设置聚类算法内部的距离计算方式 * 而在3.5版本里面默认的采用了欧几里得距离 */ KM = new SimpleKMeans(); //设置聚类要得到的类别数量 KM.setNumClusters(2); /* * 3.使用聚类算法对样本进行聚类 */ KM.buildClusterer(ins); /* * 4.打印聚类结果 */ tempIns = KM.getClusterCentroids(); System.out.println("CentroIds: " + tempIns); }catch(Exception e){ e.printStackTrace(); } }}
SimpleKMean是最简单的KMeans算法,因为聚类算法的核心是通过距离来得到类别(类间相异,类内相似),所以需要有一个计算距离的公式常见的就是欧几里得距离了。在3.5版本中weka没有考虑其它距离公式的情况,将SimpleKMean计算距离的方法默认为欧几里得距离。在3.6中就weka提供了setDistanceFunction(DistanceFunction df)的接口可以方便我们设置自己的距离计算方法。
本文摘要于:http://anqiang1900.blog.163.com/blog/static/11418886420093631322170/
weka学习(聚类算法)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。