Ⅰ 空間譜估計均勻線陣music演算法matlab程序 急求!!!!!!
先用特徵值分解估計出信號個數,
然後MUSIC演算法中找出對應信號或信號雜訊的特徵向量,建立子空間。
S'*En*En'*S, 找最小值,譜搜索就好了。S是array manifold,En是雜訊的特徵向量。
函數照這個格式編就行 function output=MUSIC(array,Rxx,M)
array是線陣坐標矩陣,Rxx是接收數據的二階統計量,M是信號個數。
自己編吧,不難。。
Ⅱ 譜聚類(Spectral clustering)(python實現)
譜聚類概念 :
譜聚類是一種基於圖論的聚類方法,通過對樣本數據的拉普拉斯矩陣的特徵向量進行聚類,從而達到對樣本數據聚類的母的。譜聚類可以理解為將高維空間的數據映射到低維,然後在低維空間用其它聚類演算法(如KMeans)進行聚類。
演算法步驟
1 計算相似度矩陣 W
2 計算度矩陣 D
3 計算拉普拉斯矩陣L=D-W
4 計算L的特徵值,將特徵值從小到大排序,取前k個特徵值.將這個特徵值向量轉換為矩陣
5 通過其他聚類演算法對其進行聚類,如k-means
詳細公式和概念請到 大佬博客
相比較PCA降維中取前k大的特徵值對應的特徵向量,這里取得是前k小的特徵值對應的特徵向量。但是上述的譜聚類演算法並不是最優的,接下來我們一步一步的分解上面的步驟,總結一下在此基礎上進行優化的譜聚類的版本。
python實現
例子一:使用譜聚類從雜訊背景中分割目標
效果圖
例子2:分割圖像中硬幣的區域
效果圖
注意
1)當聚類的類別個數較小的時候,譜聚類的效果會很好,但是當聚類的類別個數較大的時候,則不建議使用譜聚類;
(2)譜聚類演算法使用了降維的技術,所以更加適用於高維數據的聚類;
(3)譜聚類只需要數據之間的相似度矩陣,因此對於處理稀疏數據的聚類很有效。這點傳統聚類演算法(比如K-Means)很難做到
(4)譜聚類演算法建立在譜圖理論基礎上,與傳統的聚類演算法相比,它具有能在任意形狀的樣本空間上聚類且收斂於全局最優解
(5)譜聚類對相似度圖的改變和聚類參數的選擇非常的敏感;
(6)譜聚類適用於均衡分類問題,即各簇之間點的個數相差不大,對於簇之間點個數相差懸殊的聚類問題,譜聚類則不適用;
參考
譜聚類演算法介紹
sklearn官網
Ⅲ 譜聚類演算法總結
聚類三種方法:k-means聚類、密度聚類、層次聚類和 譜聚類Spectrum Clustering
譜聚類 是一種基於圖論的聚類方法——將帶權無向圖劃分為兩個或兩個以上的最優子圖,使子圖內部盡量相似,而子圖間距離盡量距離較遠,以達到常見的聚類的目的。其中的最優是指最優目標函數不同,可以是割邊最小分割,也可以是分割規模差不多且割邊最小的分割。
譜聚類演算法首先根據給定的樣本數據集定義一個描述成對數據點相似度的親合矩陣,並且計算矩陣的特徵值和特徵向量 , 然後選擇合適 的特徵向量聚類不同的數據點。譜聚類演算法最初用於計算機視覺 、VLS I 設計等領域, 最近才開始用於機器學習中,並迅速成為國際上機器學習領域的研究熱點。譜聚類演算法建立在譜圖理論基礎上,其本質是 將聚類問題轉化為圖的最優劃分 問題,是一種 點對聚類演算法 ,與傳統的聚類演算法相比,它具有能在任意形狀的樣本空間上聚類且收斂於全局最優解的優點。
根據不同的圖拉普拉斯構造方法,可以得到不同的譜聚類演算法形式。 但是,這些演算法的核心步驟都是相同的:
譜聚類是從圖論中演化過來的。主要思想是把所有的數據看做是空間中的點,這些點之間可以用邊鏈接起來。距離比較遠的兩個點之間的邊權重比較低,距離較近的兩點之間權重較高,通過對所有的數據點組成的圖進行切割,讓切圖後不同的子圖間權重和盡可能低,而子圖內的邊權重和盡可能高,從而達到聚類的目的。
對於有邊連接的兩個點v i 和v j ,w ij >0,若沒有邊連接,w ij =0,度d i 定義為和它相連的所有邊的權重之和,即
譜聚類中,通過樣本點距離度量的相似矩陣S來獲得鄰接矩陣W。
構造鄰接矩陣W的方法有 ϵ -鄰近法,K鄰近法和全連接法 。
ϵ -鄰近法 :設置距離閾值ϵ,然後用歐氏距離s ij 度量任意兩點x i 和x j 的距離,即s ij =||x i -x j || 2 2
鄰接矩陣W定義為:
L=D-W,D為度矩陣,是一個對角矩陣。W為鄰接矩陣。
其性質如下:
對於無向圖G的切圖,我們的目標是將圖G(V,E)切成相互沒有連接的k個子圖,每個子圖點的集合為:A 1 ,A 2 ,..A k ,它們滿足A i ∩A j =∅,且A 1 ∪A 2 ∪...∪A k =V
對於任意兩個子圖點的集合A,B⊂V, A∩B=∅, 我們定義A和B之間的切圖權重為:
RatioCut切圖為了避免最小切圖,對每個切圖,不光考慮最小化cut(A 1 ,A 2 ,..A k ),它同時還考慮最大化每個子圖點的個數,即:
Ncut切圖和RatioCut切圖很類似,但是把Ratiocut的分母|Ai|換成vol(Ai). 由於子圖樣本的個數多並不一定權重就大,我們切圖時基於權重也更合我們的目標,因此一般來說Ncut切圖優於RatioCut切圖。
這樣我們就可以繼續按照RatioCut的思想,求出D -1/2 LD -1/2 的最小的前k個特徵值,然後求出對應的特徵向量,並標准化,得到最後的特徵矩陣F,最後對F進行一次傳統的聚類(比如K-Means)即可。
D -1/2 LD -1/2 相當於對拉普拉斯矩陣L做了一次標准化,
譜聚類主要的注意點為相似矩陣的生成方式,切圖的方式以及最後的聚類方法。
最常用的相似矩陣的生成方式是基於高斯核距離的全連接方式,最常用的切圖方式是Ncut。而到最後常用的聚類方法為K-Means。下面以Ncut總結譜聚類演算法流程。
輸入:樣本集D=(x1,x2,...,xn),相似矩陣的生成方式, 降維後的維度k1, 聚類方法,聚類後的維度k2
輸出: 簇劃分C(c1,c2,...ck2)
譜聚類演算法的主要優點有:
1)譜聚類只需要數據之間的相似度矩陣,因此對於處理稀疏數據的聚類很有效。這點傳統聚類演算法比如K-Means很難做到
2)由於使用了降維,因此在處理高維數據聚類時的復雜度比傳統聚類演算法好。
譜聚類演算法的主要缺點有:
1)如果最終聚類的維度非常高,則由於降維的幅度不夠,譜聚類的運行速度和最後的聚類效果均不好。
轉自: https://www.cnblogs.com/pinard/p/6221564.html