楼主: houdesen
1751 7

[问答] 求,关于聚类分析方面的问题? [推广有奖]

  • 0关注
  • 0粉丝

大专生

51%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
1.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
202 点
帖子
87
精华
0
在线时间
20 小时
注册时间
2009-10-8
最后登录
2021-11-24

楼主
houdesen 发表于 2010-1-4 14:43:25 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
 大家好!我现在做的是聚类分析,高手老师们能不能给点matlab关于聚类的原代码?多谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:聚类分析 MATLAB atlab matla 大家好 聚类分析

回帖推荐

fighting8818 发表于3楼  查看完整内容

function y=kMeansCluster(m,k,isRand) if nargin

本帖被以下文库推荐

沙发
suiyuer2003 发表于 2010-1-4 15:03:01
这个能弄到吗?

藤椅
fighting8818 发表于 2010-1-6 10:24:19
function y=kMeansCluster(m,k,isRand)

if nargin<3,        isRand=0;   end
if nargin<2,        k=1;        end   
[maxRow, maxCol]=size(m)
if maxRow<=k,     
     y=[m, 1:maxRow]
else  
  % initial value of centroid
    if isRand,
       p = randperm(size(m,1));      % random initialization
        for i=1:k
            c(i,:)=m(p(i),:)
       end
    else
        for i=1:k
           c(i,:)=m(i,:)        % sequential initialization
     end
    end
     temp=zeros(maxRow,1);   % initialize as zero vector
     while 1,
        d=DistMatrix(m,c);  % calculate objcets-centroid distances
        [z,g]=min(d,[],2);  % find group matrix g
        if g==temp,
            break;          % stop the iteration
        else
            temp=g;         % copy group matrix to temporary variable
        end
        for i=1:k
            f=find(g==i);
            if f            % only compute centroid if f is not empty
                c(i,:)=mean(m(find(g==i),:),1);
            end
        end
end
     y=[m,g];
end
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

板凳
fighting8818 发表于 2010-1-6 10:24:54
function d=DistMatrix(A,B)
                     
             [hA,wA]=size(A);
             [hB,wB]=size(B);
             if wA ~= wB, error(' second dimension of A and B must be the same'); end
             for k=1:wA
                 C{k}= repmat(A(:,k),1,hB);
                 D{k}= repmat(B(:,k),1,hA);
             end
             S=zeros(hA,hB);
             for k=1:wA
                 S=S+(C{k}-D{k}').^2;
             end
             d=sqrt(S);

报纸
fighting8818 发表于 2010-1-6 10:25:31
这是k—Means聚类算法

地板
cowboy1106 发表于 2010-1-6 22:04:16
我会用NTSYS和SPSS做,方便的话发到QQ,我帮你处理吧

7
kuangsir6 发表于 2010-1-7 12:56:23
感觉你是求别人想你提问题的!

8
houdesen 发表于 2010-3-23 19:14:27
谢谢大家的帮助!!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-16 21:50