2014-11-23 86 views
2

過去幾個月來我一直在研究自組織映射(SOM)。但我在理解維度縮減部分時仍存在一些困惑。您可以使用任何簡單的方法來理解實際工作SOMs在任何真實世界的數據集上(如來自UCI存儲庫的數據集)。使用自組織映射縮減維度

回答

1

好吧,首先請參考以前的一些相關問題,這些問題可以讓您更好地理解SOM的尺寸縮減和可視化屬性。 Plotting the Kohonen map - Understanding the visualization, Interpreting a Self Organizing Map

第二簡單的情況下,以測試SOM的屬性:

  • 創建具有3個特徵,你有3個不同的 簇的簡單數據集;
  • 在此數據集上執行SOM並將其可視化。

我將使用MATLAB編程語言來舉例說明如何做到這一點以及您可以從學習過程中提取什麼。

CODE:

% create a dataset with 3 clusters and 3 features 
x=[ones(1000,1)*0.5,zeros(1000,1),zeros(1000,1)]; 
x=[x;[zeros(1000,1),ones(1000,1)*0.5,zeros(1000,1)]]; 
x=[x;[zeros(1000,1),zeros(1000,1),ones(1000,1)*0.5]]; 
x=x+rand(3000,3)*0.2; 
x=x'; 

%define a 20x20 SOM through MATLAB "selforgmap" function, and train using the "train" 
net = selforgmap([20 20]); 
[net,tr] = train(net,x); 

%display the number of hits, neighbour distance, and plane maps  figure,plotsomplanes(net) 
figure,plotsomnd(net) 

人物,plotsomhits(淨值,X)

OUTPUT:

所以在第一張圖,你已經可以看到3000x3數據集壓縮到一個20x20x3地圖(減少近10倍)。您還可以看到,您的組件可以更容易地被壓縮爲3個單獨的類。

enter image description here 當你看的相鄰距離,並擊中圖(分別如圖2和3所示,)這是更加明顯:

在圖2中與其相鄰的多個不同的節點(通過計算出的節點權重與其相鄰權重之間的歐幾里德距離)這兩個節點之間的顏色越深。因此,我們可以看到3個高度相關節點的區域。我們可以使用這個圖像和閾值,例如獲得3個不同的區域(3個集羣),然後獲得平均權重。

在圖3中,顯示了每個節點內標籤數量的多少個樣本。可以看出,之前的3個區域呈現出樣本的均勻分佈(考慮到3個樣本具有相同數量的樣本,這是合理的),並且界面節點(劃分3個區域的節點)不映射任何樣品。我們可以再次使用這個圖像並將其閾值設置爲獲得3個不同的區域(3個聚類),然後獲取平均權重。

所以在這個數據集,並和一些簡單的後期處理,你可以減少3000X3數據集,以一個3x3矩陣

enter image description here enter image description here

+0

謝謝你的簡單和詳細explanation.Even雖然我在Python工作,我可以更好地理解這個概念。但是我對最後兩個數字有點困惑。 – Pooja 2014-11-24 17:42:35

+0

@Pooja看看我的編輯是否更容易理解 – ASantosRibeiro 2014-11-24 19:40:20

+0

謝謝..這真的很有幫助。 – Pooja 2014-11-26 09:01:13