zoukankan      html  css  js  c++  java
  • 数据挖掘算法学习(一)K-Means算法

    博主近期实习開始接触数据挖掘,将学习笔记分享给大家。眼下用的软件是weka。下篇文章会着重解说。

    转载请附上链接http://blog.csdn.net/iemyxie/article/details/38173495

    算法简单介绍:

    K-Means算法是输入聚类个数k,以及包括n个数据对象的数据库,输出满足方差最小标准的k个聚类。并使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类对象相似度较小

    算法如果:

    均方误差是计算群组分散度的最佳參数。

    算法输入:

    聚类个数k;包括n个数据对象的数据集

    算法输出:

    k个聚类

    算法思想:

    (a)绿点表示数据集在二级的欧几里德空间。初始化的中心点u1u2用红的和蓝的叉来分别表示

    (b)在最初的E步骤中。每一个点依据离哪个簇中心点近,被指定为属于红簇还是蓝簇。这等于将这些点依据垂直于两个中心点的分隔线的的哪边分类,它用紫色的线表示。

    (c)在接下来的M步骤。又一次计算每一个簇的中心点的平均值作为每一个簇的中心点。

    直至中心点位置不变或者变化非常小。


    weka执行:

    以weather.nominal.arff为例执行结果部分截图例如以下:

    从结果中能够看出。这组数据用K-Means算法迭代四次,初始产生了两个中心点。终于有10个instances聚合为一类,4个instances聚合为一类。


    函数调用代码:

    //读入样本

    Filefile=new File("F:\Program Files (x86)\Weka-3-7\data\weather.nominal.arff");

    ArffLoaderloader= newArffLoader();

    loader.setFile(file);

    ins=loader.getDataSet();

    //初始化聚类器并设置k

    KM= new SimpleKMeans();      

    KM.setNumClusters(2);

    //进行聚类

    KM.buildClusterer(ins);

    //打印结果

    tempIns=KM.getClusterCentroids();

    System.out.println(“CentroIds:+tempIns);

    执行结果例如以下:

    @attributeoutlook {sunny,overcast,rainy}

    @attribute temperature {hot,mild,cool}

    @attribute humidity {high,normal}

    @attribute windy {TRUE,FALSE}

    @attribute play {yes,no}

    @data

    sunny,mild,high,FALSE,yes

    overcast,cool,normal,TRUE,yes


    算法应用:

    1.图片切割

    图为取不同k值时的效果。

    2.电子商务中分析商品相似度。归类商品

    3.分析公司的客户分类,使用不同的商业策略


    原创文章,
    转载请附上链接http://blog.csdn.net/iemyxie/article/details/38173495
  • 相关阅读:
    Smart Client智能客户端技术
    SaaS介绍
    SaaS介绍
    开源软件介绍
    SaaS介绍
    SaaS介绍
    开源软件介绍
    开源软件介绍
    GPUCUDA安装
    Linux 下的段错误(Segmentation fault)调试方法
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/6913557.html
Copyright © 2011-2022 走看看