K-Means算法与模糊C-Means聚类算法

一、数据集描述

实验数据集:4898个白葡萄酒样本

1、数据来源

链接Wine Quality Data.(其中包含1599个红葡萄酒样本、4898个白葡萄酒样本,本实验只使用白葡萄酒样本)
数据来自:UCI Machine Learning Repository(加州大学欧文(尔湾)分校机器学习与智能系统中心)

2、数据维度

维度:12个变量

序号理化性质字段名称
1固定酸度fixed acidity
2挥发性酸度volatile acidity
3柠檬酸fixed acidity
4残糖residual sugar
5氯化物chlorides
6游离二氧化硫free sulfur dioxide
7总二氧化硫total sulfur dioxide
8密度density
9PH值pH
10硫酸盐sulphates
11酒精度alcohol
12质量quality

其中葡萄酒本身的性质固定酸度、挥发酸度、柠檬酸、残糖、氯化物、游离二氧化硫、总二氧化硫、密度、pH值、硫酸盐、酒精为输入,葡萄酒质量是基于感觉得出的为输出。

二、K-Means算法实现聚类

1、基本思想

  以空间中k个点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。

2、算法描述

  • 创建K个点作为初始质心(随机选择)
  • 当任意一个点的簇分配结果发生改变时: 对数据中的每个点和质心计算质心与数据点之间的距离将数据点分配到距其最近的簇
  • 对每个簇,计算簇中所有点的均值并且将均值作为新的质心
  • 不断迭代,直到簇不再发生变化或者达到最大迭代次数

3、代码实现

  本代码中采用欧式距离法计算质心与数据点之间的距离。
  因样本变量有12维,维度较高,难以可视化结果,故结果由数据形式展示。

% 读取数据集,变量data存储的是一个尺寸为4898×12的矩阵,第12列是标签
data=xlsread('wine-white.xls');
% 将样本特征和样本标签分类存放
feature = data(:, 1:10);
label = data(:, 11);
% 对样本特征进行0-1归一化操作
flattened_feature = feature(:)';
mapped_flattened_feature = mapminmax(flattened_feature, 0, 1);
feature = reshape(mapped_flattened_feature, size(feature));
% 变量K中存放的是类别数,本例中K=5
K = 5;
% 从变量feature中随机挑选K个样本作为初始簇中心
% 变量data_num中存放的是样本数量
% 变量temp中存放的是随机产生的K个序号
% 变量center中存放的是挑选出的K个簇中心
data_num = size(feature, 1);
temp = randperm(data_num, K)';
center = feature(temp, :);
% 变量iteration中存放的是迭代次数
iteration = 0;
% 开始迭代
while 1
    % 变量distance中存放的是样本特征集与所有簇中心的欧氏距离的平方
    % 它是一个M×K的矩阵,M是样本量,K是类别数
    distance = ou_distance(feature, center);
    % 对变量distance的每一行从小到大排序,变量index中存放的是排序后的序号
    [~, index] = sort(distance, 2, 'ascend');
    % 计算新的簇中心
    center_new = zeros(K, size(feature, 2));
    for i = 1:K
        class_i_feature = feature(index(:, 1) == i, :);
        center_new(i, :) = mean(class_i_feature, 1);
    end
    % 更新迭代次数
    iteration = iteration + 1;
    % 输出当前迭代次数
    fprintf('当前迭代次数为:%d\n', iteration);
    % 如果聚类中心与上一次迭代相同,则停止迭代,跳出循环
    if center_new == center
        break;
    end
    % 否则用新的簇中心来取代旧的
    center = center_new;
end
% 变量result中存放的是最终的聚类结果
result = index(:, 1);

结果:

在这里插入图片描述
在这里插入图片描述
聚类中心矩阵:
在这里插入图片描述部分聚类结果与样本标签对比:
在这里插入图片描述
在这里插入图片描述
  1-5分别表示聚类后属于的类别。由于样本的中葡萄酒的质量区间在4-8之间,因此将样本聚类成5类,结果中1对应quality=4,2对应quality=5,3对应quality=6,4对应quality=7,5对应quality=8。

三、模糊C-Means聚类算法实现聚类

1、基本思想

  模糊C均值聚类算法是一种以隶属度来确定每个数据点属于某个聚类程度的算法。

2、算法描述

  1. 标准化数据矩阵;
  2. 建立模糊相似矩阵,初始化隶属矩阵;
  3. 算法开始迭代,更新隶属度矩阵,直到目标函数收敛到极小值;
  4. 根据迭代结果,由最后的隶属矩阵确定数据所属的类,显示最后的聚类结果。

3、代码实现

主函数:

function[center,U,obj_fun]=FCMCluster(data,n,options)
%输入 
% data    n*m矩阵,n个样本数,每个样本的维度为m
% n       类别数
% options 4*1 矩阵
%   options(1):隶属度矩阵U的加权指数
%   options(2):最大迭代次数
%   options(3):隶属度最小变化量,迭代终止条件
%   options(4):每次迭代是否输出信息标志

%输出
% center    聚类中心
% U         隶属度矩阵
% obj_fun   目标函数值

if nargin~=2 && nargin~=3
    error('Too many or too few input arguments');
end 

data_n=size(data,1);
in_n=size(data,2);

%默认参数
default_options=[2;100;1e-5;1];

%参数配置
  %如果只输入前两个参数,选用默认的参数;如果参数个数小于4,其他选用默认参数
  if nargin==2
      options=default_options;
  else
       if length(options)<4
           tmp=default_options;
           tmp(1:length(options))=options;
           options=tmp;
       end 
       nan_index=find(isnan(options)==1);
       options(nan_index)=default_options(nan_index);
       if options(1)<=1
           error('The exponent should be greater than 1!');
       end 
  end 

%将options 中的分量分别赋值给四个变量
  expo=options(1);
  max_iter=options(2);
  min_impro=options(3);
  display=options(4);

 obj_fun=zeros(max_iter,1);
 
%初始化模糊分配矩阵
  U=initfcm(n,data_n);
%主程序
   for i=1:max_iter
       [U,center,obj_fun(i)]=stepfcm(data,U,n,expo);
       if display
           fprintf('FCM:Iteration count=%d,obj_fun=%f\n',i,obj_fun(i));
       end
       %终止条件判别
       if i>1
           if abs(obj_fun(i)-obj_fun(i-1))<min_impro
               break;
           end 
       end 
   end
   iter_n=i;
   obj_fun(iter_n+1:max_iter)=[];
 end
%%子函数 模糊矩阵初始化
    function U= initfcm(n,data_n)
        U=rand(n,data_n);
        col_sum=sum(U);
        U=U./col_sum(ones(n,1),:);
    end
%%子函数 逐步聚类
        function [U_new,center,obj_fun]=stepfcm(data,U,n,expo)
            mf=U.^expo;
            center=mf*data./((ones(size(data,2),1)*sum(mf'))');
            dist=distfcm(center,data);
            obj_fun=sum(sum((dist.^2).*mf));
            tmp=dist.^(-2/(expo-1));
            U_new=tmp./(ones(n,1)*sum(tmp));
        end
%%子函数 计算距离
            function out=distfcm(center,data)
                out=zeros(size(center,1),size(data,1));
                for k=1:size(center,1)
                    out(k,:)=sqrt(sum(((data-ones(size(data,1),1)*center(k,:)).^2)',1));
                end 
            end

导入数据,显示聚类结果:

data=xlsread('wine-white.xls');
options = [2;100;1e-5;1]; 
[center,U,obj_fcn] = FCMCluster(data,5,options); 
plot(data(:,1),data(:,2),'o'); 
hold on; 
index1=find(U(1,:)==max(U));%找出划分为第一类的数据索引 
index2=find(U(2,:)==max(U));%找出划分为第二类的数据索引 
index3=find(U(3,:)==max(U));%找出划分为第三类的数据索引 
index4=find(U(4,:)==max(U));%找出划分为第四类的数据索引 
index5=find(U(5,:)==max(U));%找出划分为第五类的数据索引

  5个变量index分别存储聚类后每个样本所属的类

运行1次:
部分样本聚类结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输出结果:
FCM:Iteration count=1,obj_fun=2743902.770422
FCM:Iteration count=2,obj_fun=2076323.760379
FCM:Iteration count=3,obj_fun=2051421.749670
FCM:Iteration count=4,obj_fun=1908660.289224
FCM:Iteration count=5,obj_fun=1582373.766693
FCM:Iteration count=6,obj_fun=1295957.927634
FCM:Iteration count=7,obj_fun=1132566.776316
FCM:Iteration count=8,obj_fun=1051959.473996
FCM:Iteration count=9,obj_fun=1012192.751587
FCM:Iteration count=10,obj_fun=991833.196114
FCM:Iteration count=11,obj_fun=980955.638748
FCM:Iteration count=12,obj_fun=974959.961651
FCM:Iteration count=13,obj_fun=971595.185669
FCM:Iteration count=14,obj_fun=969689.571113
FCM:Iteration count=15,obj_fun=968604.944041
FCM:Iteration count=16,obj_fun=967984.966835
FCM:Iteration count=17,obj_fun=967628.557690
FCM:Iteration count=18,obj_fun=967421.889673
FCM:Iteration count=19,obj_fun=967300.512265
FCM:Iteration count=20,obj_fun=967227.940078
FCM:Iteration count=21,obj_fun=967183.507021
FCM:Iteration count=22,obj_fun=967155.483395
FCM:Iteration count=23,obj_fun=967137.184327
FCM:Iteration count=24,obj_fun=967124.774214
FCM:Iteration count=25,obj_fun=967116.029798
FCM:Iteration count=26,obj_fun=967109.643648
FCM:Iteration count=27,obj_fun=967104.831701
FCM:Iteration count=28,obj_fun=967101.111717
FCM:Iteration count=29,obj_fun=967098.177772
FCM:Iteration count=30,obj_fun=967095.828775
FCM:Iteration count=31,obj_fun=967093.927415
FCM:Iteration count=32,obj_fun=967092.376320
FCM:Iteration count=33,obj_fun=967091.103984
FCM:Iteration count=34,obj_fun=967090.056289
FCM:Iteration count=35,obj_fun=967089.191263
FCM:Iteration count=36,obj_fun=967088.475728
FCM:Iteration count=37,obj_fun=967087.883082
FCM:Iteration count=38,obj_fun=967087.391773
FCM:Iteration count=39,obj_fun=967086.984211
FCM:Iteration count=40,obj_fun=967086.645966
FCM:Iteration count=41,obj_fun=967086.365156
FCM:Iteration count=42,obj_fun=967086.131971
FCM:Iteration count=43,obj_fun=967085.938299
FCM:Iteration count=44,obj_fun=967085.777421
FCM:Iteration count=45,obj_fun=967085.643770
FCM:Iteration count=46,obj_fun=967085.532728
FCM:Iteration count=47,obj_fun=967085.440464
FCM:Iteration count=48,obj_fun=967085.363797
FCM:Iteration count=49,obj_fun=967085.300089
FCM:Iteration count=50,obj_fun=967085.247146
FCM:Iteration count=51,obj_fun=967085.203147
FCM:Iteration count=52,obj_fun=967085.166581
FCM:Iteration count=53,obj_fun=967085.136191
FCM:Iteration count=54,obj_fun=967085.110932
FCM:Iteration count=55,obj_fun=967085.089939
FCM:Iteration count=56,obj_fun=967085.072490
FCM:Iteration count=57,obj_fun=967085.057987
FCM:Iteration count=58,obj_fun=967085.045932
FCM:Iteration count=59,obj_fun=967085.035912
FCM:Iteration count=60,obj_fun=967085.027583
FCM:Iteration count=61,obj_fun=967085.020659
FCM:Iteration count=62,obj_fun=967085.014904
FCM:Iteration count=63,obj_fun=967085.010121
FCM:Iteration count=64,obj_fun=967085.006144
FCM:Iteration count=65,obj_fun=967085.002839
FCM:Iteration count=66,obj_fun=967085.000091
FCM:Iteration count=67,obj_fun=967084.997807
FCM:Iteration count=68,obj_fun=967084.995908
FCM:Iteration count=69,obj_fun=967084.994329
FCM:Iteration count=70,obj_fun=967084.993017
FCM:Iteration count=71,obj_fun=967084.991926
FCM:Iteration count=72,obj_fun=967084.991019
FCM:Iteration count=73,obj_fun=967084.990266
FCM:Iteration count=74,obj_fun=967084.989639
FCM:Iteration count=75,obj_fun=967084.989118
FCM:Iteration count=76,obj_fun=967084.988685
FCM:Iteration count=77,obj_fun=967084.988325
FCM:Iteration count=78,obj_fun=967084.988026
FCM:Iteration count=79,obj_fun=967084.987777
FCM:Iteration count=80,obj_fun=967084.987570
FCM:Iteration count=81,obj_fun=967084.987398
FCM:Iteration count=82,obj_fun=967084.987255
FCM:Iteration count=83,obj_fun=967084.987136
FCM:Iteration count=84,obj_fun=967084.987038
FCM:Iteration count=85,obj_fun=967084.986955
FCM:Iteration count=86,obj_fun=967084.986887
FCM:Iteration count=87,obj_fun=967084.986830
FCM:Iteration count=88,obj_fun=967084.986783
FCM:Iteration count=89,obj_fun=967084.986744
FCM:Iteration count=90,obj_fun=967084.986711
FCM:Iteration count=91,obj_fun=967084.986684
FCM:Iteration count=92,obj_fun=967084.986662
FCM:Iteration count=93,obj_fun=967084.986643
FCM:Iteration count=94,obj_fun=967084.986627
FCM:Iteration count=95,obj_fun=967084.986614
FCM:Iteration count=96,obj_fun=967084.986604
FCM:Iteration count=97,obj_fun=967084.986595

聚类中心:
在这里插入图片描述
运行时间:
在这里插入图片描述
运行2次:
部分样本聚类结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

输出结果:
FCM:Iteration count=1,obj_fun=2753544.591951
FCM:Iteration count=2,obj_fun=2076038.796116
FCM:Iteration count=3,obj_fun=2048870.380586
FCM:Iteration count=4,obj_fun=1890841.533324
FCM:Iteration count=5,obj_fun=1532261.998775
FCM:Iteration count=6,obj_fun=1244917.031703
FCM:Iteration count=7,obj_fun=1099510.682752
FCM:Iteration count=8,obj_fun=1029529.264145
FCM:Iteration count=9,obj_fun=996681.841108
FCM:Iteration count=10,obj_fun=981883.001456
FCM:Iteration count=11,obj_fun=974961.651558
FCM:Iteration count=12,obj_fun=971483.755696
FCM:Iteration count=13,obj_fun=969624.643901
FCM:Iteration count=14,obj_fun=968590.742682
FCM:Iteration count=15,obj_fun=968001.719130
FCM:Iteration count=16,obj_fun=967660.072525
FCM:Iteration count=17,obj_fun=967458.312698
FCM:Iteration count=18,obj_fun=967336.571884
FCM:Iteration count=19,obj_fun=967261.129006
FCM:Iteration count=20,obj_fun=967212.856436
FCM:Iteration count=21,obj_fun=967180.830213
FCM:Iteration count=22,obj_fun=967158.756531
FCM:Iteration count=23,obj_fun=967142.964807
FCM:Iteration count=24,obj_fun=967131.278313
FCM:Iteration count=25,obj_fun=967122.377446
FCM:Iteration count=26,obj_fun=967115.439714
FCM:Iteration count=27,obj_fun=967109.935298
FCM:Iteration count=28,obj_fun=967105.510156
FCM:Iteration count=29,obj_fun=967101.918555
FCM:Iteration count=30,obj_fun=967098.983597
FCM:Iteration count=31,obj_fun=967096.573701
FCM:Iteration count=32,obj_fun=967094.588264
FCM:Iteration count=33,obj_fun=967092.948664
FCM:Iteration count=34,obj_fun=967091.592415
FCM:Iteration count=35,obj_fun=967090.469234
FCM:Iteration count=36,obj_fun=967089.538289
FCM:Iteration count=37,obj_fun=967088.766215
FCM:Iteration count=38,obj_fun=967088.125615
FCM:Iteration count=39,obj_fun=967087.593926
FCM:Iteration count=40,obj_fun=967087.152521
FCM:Iteration count=41,obj_fun=967086.785998
FCM:Iteration count=42,obj_fun=967086.481607
FCM:Iteration count=43,obj_fun=967086.228783
FCM:Iteration count=44,obj_fun=967086.018769
FCM:Iteration count=45,obj_fun=967085.844301
FCM:Iteration count=46,obj_fun=967085.699351
FCM:Iteration count=47,obj_fun=967085.578919
FCM:Iteration count=48,obj_fun=967085.478850
FCM:Iteration count=49,obj_fun=967085.395698
FCM:Iteration count=50,obj_fun=967085.326600
FCM:Iteration count=51,obj_fun=967085.269179
FCM:Iteration count=52,obj_fun=967085.221459
FCM:Iteration count=53,obj_fun=967085.181800
FCM:Iteration count=54,obj_fun=967085.148839
FCM:Iteration count=55,obj_fun=967085.121445
FCM:Iteration count=56,obj_fun=967085.098677
FCM:Iteration count=57,obj_fun=967085.079753
FCM:Iteration count=58,obj_fun=967085.064023
FCM:Iteration count=59,obj_fun=967085.050949
FCM:Iteration count=60,obj_fun=967085.040082
FCM:Iteration count=61,obj_fun=967085.031049
FCM:Iteration count=62,obj_fun=967085.023541
FCM:Iteration count=63,obj_fun=967085.017300
FCM:Iteration count=64,obj_fun=967085.012112
FCM:Iteration count=65,obj_fun=967085.007799
FCM:Iteration count=66,obj_fun=967085.004214
FCM:Iteration count=67,obj_fun=967085.001234
FCM:Iteration count=68,obj_fun=967084.998757
FCM:Iteration count=69,obj_fun=967084.996698
FCM:Iteration count=70,obj_fun=967084.994986
FCM:Iteration count=71,obj_fun=967084.993563
FCM:Iteration count=72,obj_fun=967084.992380
FCM:Iteration count=73,obj_fun=967084.991397
FCM:Iteration count=74,obj_fun=967084.990579
FCM:Iteration count=75,obj_fun=967084.989900
FCM:Iteration count=76,obj_fun=967084.989335
FCM:Iteration count=77,obj_fun=967084.988865
FCM:Iteration count=78,obj_fun=967084.988475
FCM:Iteration count=79,obj_fun=967084.988150
FCM:Iteration count=80,obj_fun=967084.987880
FCM:Iteration count=81,obj_fun=967084.987656
FCM:Iteration count=82,obj_fun=967084.987470
FCM:Iteration count=83,obj_fun=967084.987315
FCM:Iteration count=84,obj_fun=967084.987186
FCM:Iteration count=85,obj_fun=967084.987079
FCM:Iteration count=86,obj_fun=967084.986990
FCM:Iteration count=87,obj_fun=967084.986916
FCM:Iteration count=88,obj_fun=967084.986854
FCM:Iteration count=89,obj_fun=967084.986803
FCM:Iteration count=90,obj_fun=967084.986760
FCM:Iteration count=91,obj_fun=967084.986725
FCM:Iteration count=92,obj_fun=967084.986696
FCM:Iteration count=93,obj_fun=967084.986671
FCM:Iteration count=94,obj_fun=967084.986651
FCM:Iteration count=95,obj_fun=967084.986634
FCM:Iteration count=96,obj_fun=967084.986620
FCM:Iteration count=97,obj_fun=967084.986608
FCM:Iteration count=98,obj_fun=967084.986598

聚类中心:
在这里插入图片描述
在这里插入图片描述)
运行3次:
部分样本聚类结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输出结果:
FCM:Iteration count=1,obj_fun=2743902.770422
FCM:Iteration count=2,obj_fun=2076323.760379
FCM:Iteration count=3,obj_fun=2051421.749670
FCM:Iteration count=4,obj_fun=1908660.289224
FCM:Iteration count=5,obj_fun=1582373.766693
FCM:Iteration count=6,obj_fun=1295957.927634
FCM:Iteration count=7,obj_fun=1132566.776316
FCM:Iteration count=8,obj_fun=1051959.473996
FCM:Iteration count=9,obj_fun=1012192.751587
FCM:Iteration count=10,obj_fun=991833.196114
FCM:Iteration count=11,obj_fun=980955.638748
FCM:Iteration count=12,obj_fun=974959.961651
FCM:Iteration count=13,obj_fun=971595.185669
FCM:Iteration count=14,obj_fun=969689.571113
FCM:Iteration count=15,obj_fun=968604.944041
FCM:Iteration count=16,obj_fun=967984.966835
FCM:Iteration count=17,obj_fun=967628.557690
FCM:Iteration count=18,obj_fun=967421.889673
FCM:Iteration count=19,obj_fun=967300.512265
FCM:Iteration count=20,obj_fun=967227.940078
FCM:Iteration count=21,obj_fun=967183.507021
FCM:Iteration count=22,obj_fun=967155.483395
FCM:Iteration count=23,obj_fun=967137.184327
FCM:Iteration count=24,obj_fun=967124.774214
FCM:Iteration count=25,obj_fun=967116.029798
FCM:Iteration count=26,obj_fun=967109.643648
FCM:Iteration count=27,obj_fun=967104.831701
FCM:Iteration count=28,obj_fun=967101.111717
FCM:Iteration count=29,obj_fun=967098.177772
FCM:Iteration count=30,obj_fun=967095.828775
FCM:Iteration count=31,obj_fun=967093.927415
FCM:Iteration count=32,obj_fun=967092.376320
FCM:Iteration count=33,obj_fun=967091.103984
FCM:Iteration count=34,obj_fun=967090.056289
FCM:Iteration count=35,obj_fun=967089.191263
FCM:Iteration count=36,obj_fun=967088.475728
FCM:Iteration count=37,obj_fun=967087.883082
FCM:Iteration count=38,obj_fun=967087.391773
FCM:Iteration count=39,obj_fun=967086.984211
FCM:Iteration count=40,obj_fun=967086.645966
FCM:Iteration count=41,obj_fun=967086.365156
FCM:Iteration count=42,obj_fun=967086.131971
FCM:Iteration count=43,obj_fun=967085.938299
FCM:Iteration count=44,obj_fun=967085.777421
FCM:Iteration count=45,obj_fun=967085.643770
FCM:Iteration count=46,obj_fun=967085.532728
FCM:Iteration count=47,obj_fun=967085.440464
FCM:Iteration count=48,obj_fun=967085.363797
FCM:Iteration count=49,obj_fun=967085.300089
FCM:Iteration count=50,obj_fun=967085.247146
FCM:Iteration count=51,obj_fun=967085.203147
FCM:Iteration count=52,obj_fun=967085.166581
FCM:Iteration count=53,obj_fun=967085.136191
FCM:Iteration count=54,obj_fun=967085.110932
FCM:Iteration count=55,obj_fun=967085.089939
FCM:Iteration count=56,obj_fun=967085.072490
FCM:Iteration count=57,obj_fun=967085.057987
FCM:Iteration count=58,obj_fun=967085.045932
FCM:Iteration count=59,obj_fun=967085.035912
FCM:Iteration count=60,obj_fun=967085.027583
FCM:Iteration count=61,obj_fun=967085.020659
FCM:Iteration count=62,obj_fun=967085.014904
FCM:Iteration count=63,obj_fun=967085.010121
FCM:Iteration count=64,obj_fun=967085.006144
FCM:Iteration count=65,obj_fun=967085.002839
FCM:Iteration count=66,obj_fun=967085.000091
FCM:Iteration count=67,obj_fun=967084.997807
FCM:Iteration count=68,obj_fun=967084.995908
FCM:Iteration count=69,obj_fun=967084.994329
FCM:Iteration count=70,obj_fun=967084.993017
FCM:Iteration count=71,obj_fun=967084.991926
FCM:Iteration count=72,obj_fun=967084.991019
FCM:Iteration count=73,obj_fun=967084.990266
FCM:Iteration count=74,obj_fun=967084.989639
FCM:Iteration count=75,obj_fun=967084.989118
FCM:Iteration count=76,obj_fun=967084.988685
FCM:Iteration count=77,obj_fun=967084.988325
FCM:Iteration count=78,obj_fun=967084.988026
FCM:Iteration count=79,obj_fun=967084.987777
FCM:Iteration count=80,obj_fun=967084.987570
FCM:Iteration count=81,obj_fun=967084.987398
FCM:Iteration count=82,obj_fun=967084.987255
FCM:Iteration count=83,obj_fun=967084.987136
FCM:Iteration count=84,obj_fun=967084.987038
FCM:Iteration count=85,obj_fun=967084.986955
FCM:Iteration count=86,obj_fun=967084.986887
FCM:Iteration count=87,obj_fun=967084.986830
FCM:Iteration count=88,obj_fun=967084.986783
FCM:Iteration count=89,obj_fun=967084.986744
FCM:Iteration count=90,obj_fun=967084.986711
FCM:Iteration count=91,obj_fun=967084.986684
FCM:Iteration count=92,obj_fun=967084.986662
FCM:Iteration count=93,obj_fun=967084.986643
FCM:Iteration count=94,obj_fun=967084.986627
FCM:Iteration count=95,obj_fun=967084.986614
FCM:Iteration count=96,obj_fun=967084.986604
FCM:Iteration count=97,obj_fun=967084.986595

聚类中心:
在这里插入图片描述
在这里插入图片描述
运行4次:
部分样本聚类结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输出结果:
FCM:Iteration count=1,obj_fun=2753857.668739
FCM:Iteration count=2,obj_fun=2076176.569146
FCM:Iteration count=3,obj_fun=2050461.913577
FCM:Iteration count=4,obj_fun=1907009.977523
FCM:Iteration count=5,obj_fun=1584620.764112
FCM:Iteration count=6,obj_fun=1321169.930421
FCM:Iteration count=7,obj_fun=1197360.224126
FCM:Iteration count=8,obj_fun=1121628.918434
FCM:Iteration count=9,obj_fun=1071565.886965
FCM:Iteration count=10,obj_fun=1038851.685429
FCM:Iteration count=11,obj_fun=1012320.862071
FCM:Iteration count=12,obj_fun=994904.196648
FCM:Iteration count=13,obj_fun=985389.764491
FCM:Iteration count=14,obj_fun=980011.164248
FCM:Iteration count=15,obj_fun=976643.159496
FCM:Iteration count=16,obj_fun=974354.922836
FCM:Iteration count=17,obj_fun=972717.675964
FCM:Iteration count=18,obj_fun=971506.876741
FCM:Iteration count=19,obj_fun=970590.821903
FCM:Iteration count=20,obj_fun=969885.980617
FCM:Iteration count=21,obj_fun=969336.537549
FCM:Iteration count=22,obj_fun=968903.784999
FCM:Iteration count=23,obj_fun=968560.100223
FCM:Iteration count=24,obj_fun=968285.308165
FCM:Iteration count=25,obj_fun=968064.386248
FCM:Iteration count=26,obj_fun=967885.965949
FCM:Iteration count=27,obj_fun=967741.326257
FCM:Iteration count=28,obj_fun=967623.700423
FCM:Iteration count=29,obj_fun=967527.787643
FCM:Iteration count=30,obj_fun=967449.402085
FCM:Iteration count=31,obj_fun=967385.216052
FCM:Iteration count=32,obj_fun=967332.569003
FCM:Iteration count=33,obj_fun=967289.323558
FCM:Iteration count=34,obj_fun=967253.755587
FCM:Iteration count=35,obj_fun=967224.469433
FCM:Iteration count=36,obj_fun=967200.331924
FCM:Iteration count=37,obj_fun=967180.420603
FCM:Iteration count=38,obj_fun=967163.982844
FCM:Iteration count=39,obj_fun=967150.403358
FCM:Iteration count=40,obj_fun=967139.178263
FCM:Iteration count=41,obj_fun=967129.894273
FCM:Iteration count=42,obj_fun=967122.211951
FCM:Iteration count=43,obj_fun=967115.852176
FCM:Iteration count=44,obj_fun=967110.585177
FCM:Iteration count=45,obj_fun=967106.221631
FCM:Iteration count=46,obj_fun=967102.605404
FCM:Iteration count=47,obj_fun=967099.607636
FCM:Iteration count=48,obj_fun=967097.121905
FCM:Iteration count=49,obj_fun=967095.060262
FCM:Iteration count=50,obj_fun=967093.349987
FCM:Iteration count=51,obj_fun=967091.930920
FCM:Iteration count=52,obj_fun=967090.753270
FCM:Iteration count=53,obj_fun=967089.775809
FCM:Iteration count=54,obj_fun=967088.964390
FCM:Iteration count=55,obj_fun=967088.290719
FCM:Iteration count=56,obj_fun=967087.731344
FCM:Iteration count=57,obj_fun=967087.266824
FCM:Iteration count=58,obj_fun=967086.881035
FCM:Iteration count=59,obj_fun=967086.560605
FCM:Iteration count=60,obj_fun=967086.294440
FCM:Iteration count=61,obj_fun=967086.073332
FCM:Iteration count=62,obj_fun=967085.889643
FCM:Iteration count=63,obj_fun=967085.737030
FCM:Iteration count=64,obj_fun=967085.610229
FCM:Iteration count=65,obj_fun=967085.504869
FCM:Iteration count=66,obj_fun=967085.417321
FCM:Iteration count=67,obj_fun=967085.344569
FCM:Iteration count=68,obj_fun=967085.284112
FCM:Iteration count=69,obj_fun=967085.233869
FCM:Iteration count=70,obj_fun=967085.192114
FCM:Iteration count=71,obj_fun=967085.157412
FCM:Iteration count=72,obj_fun=967085.128570
FCM:Iteration count=73,obj_fun=967085.104599
FCM:Iteration count=74,obj_fun=967085.084675
FCM:Iteration count=75,obj_fun=967085.068115
FCM:Iteration count=76,obj_fun=967085.054350
FCM:Iteration count=77,obj_fun=967085.042909
FCM:Iteration count=78,obj_fun=967085.033399
FCM:Iteration count=79,obj_fun=967085.025494
FCM:Iteration count=80,obj_fun=967085.018923
FCM:Iteration count=81,obj_fun=967085.013461
FCM:Iteration count=82,obj_fun=967085.008921
FCM:Iteration count=83,obj_fun=967085.005147
FCM:Iteration count=84,obj_fun=967085.002010
FCM:Iteration count=85,obj_fun=967084.999402
FCM:Iteration count=86,obj_fun=967084.997234
FCM:Iteration count=87,obj_fun=967084.995432
FCM:Iteration count=88,obj_fun=967084.993933
FCM:Iteration count=89,obj_fun=967084.992688
FCM:Iteration count=90,obj_fun=967084.991653
FCM:Iteration count=91,obj_fun=967084.990792
FCM:Iteration count=92,obj_fun=967084.990077
FCM:Iteration count=93,obj_fun=967084.989482
FCM:Iteration count=94,obj_fun=967084.988987
FCM:Iteration count=95,obj_fun=967084.988576
FCM:Iteration count=96,obj_fun=967084.988235
FCM:Iteration count=97,obj_fun=967084.987951
FCM:Iteration count=98,obj_fun=967084.987714
FCM:Iteration count=99,obj_fun=967084.987518
FCM:Iteration count=100,obj_fun=967084.987355

聚类中心:
在这里插入图片描述
在这里插入图片描述

运行5次:
部分样本聚类结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输出结果:
FCM:Iteration count=1,obj_fun=2749399.025320
FCM:Iteration count=2,obj_fun=2076591.892789
FCM:Iteration count=3,obj_fun=2053103.222058
FCM:Iteration count=4,obj_fun=1905682.560733
FCM:Iteration count=5,obj_fun=1545891.360189
FCM:Iteration count=6,obj_fun=1277300.862417
FCM:Iteration count=7,obj_fun=1121969.850459
FCM:Iteration count=8,obj_fun=1039447.973255
FCM:Iteration count=9,obj_fun=1002927.546393
FCM:Iteration count=10,obj_fun=986039.678516
FCM:Iteration count=11,obj_fun=977502.156826
FCM:Iteration count=12,obj_fun=972940.002615
FCM:Iteration count=13,obj_fun=970430.621704
FCM:Iteration count=14,obj_fun=969027.800808
FCM:Iteration count=15,obj_fun=968234.598112
FCM:Iteration count=16,obj_fun=967781.272324
FCM:Iteration count=17,obj_fun=967518.953108
FCM:Iteration count=18,obj_fun=967364.737607
FCM:Iteration count=19,obj_fun=967272.194347
FCM:Iteration count=20,obj_fun=967215.195712
FCM:Iteration count=21,obj_fun=967178.964972
FCM:Iteration count=22,obj_fun=967155.091427
FCM:Iteration count=23,obj_fun=967138.746149
FCM:Iteration count=24,obj_fun=967127.123404
FCM:Iteration count=25,obj_fun=967118.566410
FCM:Iteration count=26,obj_fun=967112.075765
FCM:Iteration count=27,obj_fun=967107.032154
FCM:Iteration count=28,obj_fun=967103.039197
FCM:Iteration count=29,obj_fun=967099.833805
FCM:Iteration count=30,obj_fun=967097.234570
FCM:Iteration count=31,obj_fun=967095.111671
FCM:Iteration count=32,obj_fun=967093.369022
FCM:Iteration count=33,obj_fun=967091.933442
FCM:Iteration count=34,obj_fun=967090.747897
FCM:Iteration count=35,obj_fun=967089.767148
FCM:Iteration count=36,obj_fun=967088.954833
FCM:Iteration count=37,obj_fun=967088.281449
FCM:Iteration count=38,obj_fun=967087.722894
FCM:Iteration count=39,obj_fun=967087.259381
FCM:Iteration count=40,obj_fun=967086.874613
FCM:Iteration count=41,obj_fun=967086.555135
FCM:Iteration count=42,obj_fun=967086.289818
FCM:Iteration count=43,obj_fun=967086.069449
FCM:Iteration count=44,obj_fun=967085.886392
FCM:Iteration count=45,obj_fun=967085.734315
FCM:Iteration count=46,obj_fun=967085.607965
FCM:Iteration count=47,obj_fun=967085.502983
FCM:Iteration count=48,obj_fun=967085.415751
FCM:Iteration count=49,obj_fun=967085.343263
FCM:Iteration count=50,obj_fun=967085.283026
FCM:Iteration count=51,obj_fun=967085.232966
FCM:Iteration count=52,obj_fun=967085.191363
FCM:Iteration count=53,obj_fun=967085.156787
FCM:Iteration count=54,obj_fun=967085.128051
FCM:Iteration count=55,obj_fun=967085.104167
FCM:Iteration count=56,obj_fun=967085.084316
FCM:Iteration count=57,obj_fun=967085.067817
FCM:Iteration count=58,obj_fun=967085.054102
FCM:Iteration count=59,obj_fun=967085.042703
FCM:Iteration count=60,obj_fun=967085.033228
FCM:Iteration count=61,obj_fun=967085.025352
FCM:Iteration count=62,obj_fun=967085.018805
FCM:Iteration count=63,obj_fun=967085.013363
FCM:Iteration count=64,obj_fun=967085.008839
FCM:Iteration count=65,obj_fun=967085.005079
FCM:Iteration count=66,obj_fun=967085.001953
FCM:Iteration count=67,obj_fun=967084.999355
FCM:Iteration count=68,obj_fun=967084.997195
FCM:Iteration count=69,obj_fun=967084.995399
FCM:Iteration count=70,obj_fun=967084.993906
FCM:Iteration count=71,obj_fun=967084.992666
FCM:Iteration count=72,obj_fun=967084.991634
FCM:Iteration count=73,obj_fun=967084.990777
FCM:Iteration count=74,obj_fun=967084.990064
FCM:Iteration count=75,obj_fun=967084.989471
FCM:Iteration count=76,obj_fun=967084.988979
FCM:Iteration count=77,obj_fun=967084.988569
FCM:Iteration count=78,obj_fun=967084.988229
FCM:Iteration count=79,obj_fun=967084.987946
FCM:Iteration count=80,obj_fun=967084.987710
FCM:Iteration count=81,obj_fun=967084.987515
FCM:Iteration count=82,obj_fun=967084.987352
FCM:Iteration count=83,obj_fun=967084.987217
FCM:Iteration count=84,obj_fun=967084.987104
FCM:Iteration count=85,obj_fun=967084.987011
FCM:Iteration count=86,obj_fun=967084.986933
FCM:Iteration count=87,obj_fun=967084.986869
FCM:Iteration count=88,obj_fun=967084.986815
FCM:Iteration count=89,obj_fun=967084.986771
FCM:Iteration count=90,obj_fun=967084.986733
FCM:Iteration count=91,obj_fun=967084.986703
FCM:Iteration count=92,obj_fun=967084.986677
FCM:Iteration count=93,obj_fun=967084.986656
FCM:Iteration count=94,obj_fun=967084.986638
FCM:Iteration count=95,obj_fun=967084.986623
FCM:Iteration count=96,obj_fun=967084.986611
FCM:Iteration count=97,obj_fun=967084.986601
FCM:Iteration count=98,obj_fun=967084.986592
聚类中心:
在这里插入图片描述

在这里插入图片描述
分析:
  在多次运行后,样本聚类结果每次具有较大差异,但每次聚类中心较为相近。模糊C均值聚类的隶属度按隶属度表示一个样本属于某一类的程度,因为按隶属程度划分样本的归类,则准确率相对K-Mean算法隶属度只取0和1高一些.

四、K-Means算法与模糊C-Means聚类算法结果对比

聚类方法运行时间平均准确度(估算)
K-Means聚类1s左右50%
模糊C均值聚类2s左右57%

五、算法比较

  k均值聚类:一种硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,以欧式距离作为相似度测度,隶属度只有两个取值0或1,提出的基本根据是“类内误差平方和最小化”准则;
K-Means聚类算法的优点主要集中在:

  • 算法快速、简单;
  • 对大数据集有较高的效率并且是可伸缩性的;
  • 时间复杂度近于线性,而且适合挖掘大规模数据集。K-Means聚类算法的时间复杂度是O(nkt) ,其中n代表数据集中对象的数量,t代表着算法迭代的次数,k代表着簇的数目。

K-Means聚类算法的缺点:

  • 根据初始聚类中心来确定一个初始划分.一旦初始值选择的不好,可能无法得到有效的聚类结果;
  • 算法需要不断地进行样本分类调整,不断地计算调整后的新的聚类中心,当数据量非常大时,算法将要大量时间;
  • K-means 算法中 K 是事先给定的,这个 K 值的选定是非常难以估计的。

  模糊的c均值聚类算法:一种模糊聚类算法,是k均值聚类算法的推广形式,隶属度取值为[0 1]区间内的任何一个数,数据属于某个类是由隶属度函数确定的,使得各点的并不直接隶属于单个聚类中心,提出的基本根据是“类内加权误差平方和最小化”准则;
模糊的c均值聚类算法优点:

  • 对于满足正态分布的数据聚类效果较好
  • 设计简单,解决问题范围广,可应用于多领域

模糊的c均值聚类算法缺点:

  • 选取正确的聚类数目c和模糊系数m,才能得到好的聚类效果。一帮C要远远小于聚类样本的总个数,同时要保证C>1。m需要合理取值,m过大,则聚类效果会很次,而如果m过小则为基本k均值聚类。
  • 易陷入局部最优解

  综上,这两个方法都是迭代求取最终的聚类划分,即聚类中心与隶属度值。两者都不能保证找到问题的最优解,都有可能收敛到局部极值。

  • 2
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值