zoukankan      html  css  js  c++  java
  • Matlab中K-means聚类算法的使用(K-均值聚类)

    K-means聚类算法采用的是将N*P的矩阵X划分为K个类,使得类内对象之间的距离最大,而类之间的距离最小。

    使用方法:
    Idx=Kmeans(X,K)
    [Idx,C]=Kmeans(X,K) 
    [Idx,C,sumD]=Kmeans(X,K) 
    [Idx,C,sumD,D]=Kmeans(X,K) 
    […]=Kmeans(…,’Param1’,Val1,’Param2’,Val2,…)

    各输入输出参数介绍:

    X N*P的数据矩阵
    K 表示将X划分为几类,为整数
    Idx N*1的向量,存储的是每个点的聚类标号
    C K*P的矩阵,存储的是K个聚类质心位置
    sumD 1*K的和向量,存储的是类间所有点与该类质心点距离之和
    D N*K的矩阵,存储的是每个点与所有质心的距离

    […]=Kmeans(…,'Param1',Val1,'Param2',Val2,…)
    这其中的参数Param1、Param2等,主要可以设置为如下:

    1. ‘Distance’(距离测度)
    ‘sqEuclidean’ 欧式距离(默认时,采用此距离方式)
    ‘cityblock’ 绝度误差和,又称:L1
    ‘cosine’ 针对向量
    ‘correlation’  针对有时序关系的值
    ‘Hamming’ 只针对二进制数据

    2. ‘Start’(初始质心位置选择方法)
    ‘sample’ 从X中随机选取K个质心点
    ‘uniform’ 根据X的分布范围均匀的随机生成K个质心
    ‘cluster’ 初始聚类阶段随机选择10%的X的子样本(此方法初始使用’sample’方法)
    matrix 提供一K*P的矩阵,作为初始质心位置集合

    3. ‘Replicates’(聚类重复次数)  整数;

    'emptyaction'(空簇处理方法):'drop'


                       
    使用案例:

    data= 
    5.0 3.5 1.3 0.3 -1
    5.5 2.6 4.4 1.2 0
    6.7 3.1 5.6 2.4 1
    5.0 3.3 1.4 0.2 -1
    5.9 3.0 5.1 1.8 1
    5.8 2.6 4.0 1.2 0

    [Idx,C,sumD,D]=Kmeans(data,3,'dist','sqEuclidean','rep',4)

    运行结果:
    Idx =
         1
         2
         3
         1
         3
         2

    C =
        5.0000    3.4000    1.3500    0.2500   -1.0000
        5.6500    2.6000    4.2000    1.2000         0
    6.3000    3.0500    5.3500    2.1000    1.0000

    sumD =
        0.0300
        0.1250
        0.6300

    D =
        0.0150   11.4525   25.5350
       12.0950    0.0625    3.5550
       29.6650    5.7525    0.3150
        0.0150   10.7525   24.9650
       21.4350    2.3925    0.3150
       10.2050    0.0625    4.0850

  • 相关阅读:
    系统架构师基础到企业应用架构表现层
    网站性能优化之应用程序缓存中篇
    系统架构师基础到企业应用架构企业应用架构
    系统架构师基础到企业应用架构服务层
    http的请求和响应过程管道
    反射获取信息图(转)
    白话学习MVC(二)页面周期一
    Asp.Net请求原理and页面生命周期(转)
    前后台互访
    HttpApplication事件&ASP.NET页面周期
  • 原文地址:https://www.cnblogs.com/wangduo/p/5292497.html
Copyright © 2011-2022 走看看