`
anna_zr
  • 浏览: 200568 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Weka系列转载之聚类

阅读更多
上次我介绍了分类器的使用方法,这次我来介绍一下聚类算法。聚类算法在数据挖掘里面被称之为无监督学习(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 {



    /**

     * @param args

     */

    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("C:\\Program Files\\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();

       }

    }

}

我们可以看到读入样本的过程是与上一节的一样的方法。在构建聚类器时也是通过现有的类来实现的。现在weka的聚类算法有11种之多,我所了解的也就是一两种算法而已。SimpleKMean是最简单的KMeans算法,因为聚类算法的核心是通过距离来得到类别(类间相异,类内相似),所以需要有一个计算距离的公式常见的就是欧几里得距离了。在3.5版本中weka没有考虑其它距离公式的情况,将SimpleKMean计算距离的方法默认为欧几里得距离。在3.6中就weka提供了setDistanceFunction(DistanceFunction df)的接口可以方便我们设置自己的距离计算方法。

有一点要注意,在上面的聚类过程中,我们将样本的类别属性也放在里面了,这样做是不符合常识的,因为样本类别属性包含了大量的类别信息,可以诱导聚类算法得到很好的效果。但是这与我们的初衷是相背离的,所以在聚类之前我们要记住删除掉类别属性。

在第四步打印聚类结果是一个很简单的信息,里面包括了聚类的几个中心点。在我们写程序时,可以使用ClusterEvaluation类来打印更多的信息。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/anqiang1984/archive/2009/04/02/4044219.aspx
分享到:
评论

相关推荐

    引用 Weka学习二(聚类算法) .docx

    《深入理解Weka中的聚类算法》 在数据挖掘领域,聚类算法是无监督学习的重要组成部分,它与监督学习和半监督学习相区别。无监督学习是指在没有已知类别标签的情况下,通过聚类算法对数据进行分组,使得同一组内的...

    weka-src.rar_ weka_Weka 聚类_java 数据挖掘_weka java_聚类 java

    标题中的“weka-src.rar”指的是Weka的数据挖掘工具的源代码压缩包,而“weka_Weka 聚类_java 数据挖掘_weka java_聚类 java”这部分描述了该软件的主要功能,即Weka在Java环境下进行数据挖掘,特别是聚类分析。Weka...

    引用Weka学习二(聚类算法).pdf

    其中,K-Means 算法是最常用的聚类算法之一。 K-Means 算法的基本思想是将样本分配到离它最近的簇中,以使得簇内的样本尽可能相似。K-Means 算法的优点是计算速度快、结果可靠,但是它也存在一些缺点,例如对初始值...

    基于WEKA的聚类分析算法

    通过对大量数据的聚类分析,不仅能帮助银行精准定位目标客户,还能显著提升电话营销的效率和成功率。而所采用的算法,例如决策树(C4.5)和随机森林等,都是数据挖掘和机器学习中的重要工具,值得在类似的领域内...

    引用Weka学习二(聚类算法)[定义].pdf

    **Weka中的聚类算法** Weka是一款强大的数据挖掘工具,包含了多种机器学习算法,其中包括11种不同的聚类算法。在提供的代码示例中,使用的是`SimpleKMeans`,这是一个基于K-Means算法的简单实现。K-Means是一种广泛...

    WEKA聚类分析实例代码

    【WEKA聚类分析实例代码】是关于使用WEKA这一强大的数据挖掘工具进行聚类分析的一个实际应用。WEKA(Waikato Environment for Knowledge Analysis)是新西兰怀卡托大学开发的一个开源数据挖掘软件,它提供了丰富的...

    模糊C均值聚类(weka)

    仿照weka自带的简单K均值聚类算法,实现的一个简单的模糊C均值聚类算法。

    Weka中各种分类算法和聚类算法集成

    本工具包集成了Weka中最新的分类和聚类算法,将其打包成jar包,方便java开发者调用

    Weka中各种聚类算法的调用的java源程序

    一个我本人写的关天Weka.jar工具包中各种聚类算法的调用的java源程序

    Weka 用于文旦聚类

    在数据分析和机器学习领域,Weka 是一个广泛使用的开源工具,它提供了丰富的数据预处理、分类、回归、聚类和关联规则挖掘等算法。在这个场景中,我们关注的是"Weka 用于文旦聚类",这表明我们将使用Weka来执行一种...

    基于WEKA平台的Web 事务聚类算法的研究

    ### 基于WEKA平台的Web事务聚类算法的研究 #### 一、引言与背景 随着互联网的快速发展,Web上的数据呈现出爆炸性增长,这些数据不仅规模庞大,而且具有高度的动态性和不确定性。然而,传统的数据挖掘技术在处理这...

    个人推荐的Weka教程,包含了数据格式、数据准备、分类和聚类Demo

    “个人推荐的Weka教程,包含了数据格式、数据准备、分类和聚类Demo” 这个标题表明这是一个关于Weka的数据挖掘工具的教程,它涵盖了数据预处理的基本步骤,包括数据格式的理解、数据准备的技巧,以及核心的机器学习...

    weka常用聚类包

    非常实用的数据挖掘工具包

    cluster-weka聚类

    ### Cluster-WEKA聚类知识点解析 #### 一、引言 在数据挖掘领域,聚类是一种非常重要的无监督学习技术,它可以帮助我们从大量数据中发现潜在的模式和结构。Weka作为一款广泛使用的开源数据挖掘软件,因其丰富的算法...

    基于weka的数据分类和聚类分析实验报告.docx

    【基于Weka的数据分类和聚类分析实验报告】 在数据科学和机器学习领域,Weka是一个广泛使用的开源工具,它提供了各种数据预处理、分类、聚类和回归算法。本实验报告主要关注如何使用Weka进行数据分类和聚类,并通过...

    weka 中em算法详细解析

    这意味着EM算法在Weka中不仅仅作为一种独立的聚类方法存在,还能够与SimpleKMeans结合使用,提供更加灵活的聚类解决方案。值得注意的是,EM算法在Weka中的实现不仅考虑了算法本身的特性,还充分考虑了数据预处理的...

Global site tag (gtag.js) - Google Analytics