譜聚類演算法Matlab快速實現

2021-07-02 18:45:47 字數 639 閱讀 7568

%ncut譜聚類完整函式定義(儲存為.m檔案):

function c = spectralclustering(data,k,a)     %data是資料點矩陣  k是聚類個數  a代表高斯核函式的引數

%untitled summary of this function goes here

%   detailed explanation goes here

d = pdist(data) 

d2 = squareform(d)

d3 = d2.^2

w(:,:) = exp(-d3(:,:)/(2*a^2))

[n,m] = size(w);  

s = sum(w) 

d = full(sparse(1:n,1:n,s))

e = d^(-1/2)*w*d^(-1/2)

[x,b] = eig(e)

[q,v] = eigs(e,k)                 %選的是前k個最大特徵值對應的特徵向量

c = kmeans(q,k)

endload  c:\users\wangyuanw\desktop\data\data1new.txt;

spectralclustering(data1new,3,3);  

Matlab實現k means聚類演算法

k means是聚類中的乙個十分經典的演算法,具體的思想可以參考andrew ng的講義 the k means clustering algorithm 這裡不再贅述。需要用到matlab中的核心函式kmeans,具體用法可以參考matlab命令 doc kmeans idx kmeans x,k...

MATLAB實現Kmeans聚類演算法

這是我練習的第乙個機器學習的演算法,寫的比較簡單,肯定也有一些小錯誤。也參看了很多其他人的 現在貼出來算是我學習的乙個歷程啦。clear all close all clc data1 normrnd 0,0.25,100,2 生成符合 data2 normrnd 1.25,0.5,100,2 da...

譜聚類演算法原理介紹

給你上若干個部落格,讓你將它們分成k類,你會怎樣做?想必有很多方法,本文要介紹的是其中的一種 譜聚類。聚類的直觀解釋是根據樣本間相似度,將它們分成不同組。譜聚類的思想是將樣本看作頂點,樣本間的相似度看作帶權的邊,從而將聚類問題轉為圖分割問題 找到一種圖分割的方法使得連線不同組的邊的權重盡可能低 這意...