2013-10-22 68 views
0

我正在嘗試編寫代碼來爲混合類型數據構建增長SOM。我偶然發現了一個帶有混合類型數據的插入式生長自組織映射(http://www.sciencedirect.com/science/article/pii/S1568494612001731)。這是非常有趣的,並以統一的方式處理分類和數字數據。但是,我的數據集具有可以具有多個值的變量/屬性(例如:屬性「興趣」可以具有多個值 - 電影,運動等...)。我被困在處理這些屬性。任何輸入如何處理混合類型數據集中的值集合的屬性?參考材料,談論這個問題將不勝感激。混合類型數據增長自組織映射

回答

1

一種常見的做法使用神經網絡分類屬性時是打破在多個二進制屬性(真/假),一個用於分類屬性的每個屬性值的屬性。例如,如果您的值爲「電影」,「運動」,「烹飪」具有屬性「興趣」,那麼您將分爲三個屬性,每個值一個,值爲0/1的電影,值爲0/1的運動並用值0/1進行烹調。唯一可以避免這種分裂的情況是屬性值可以被排序並因此轉換爲單個數字屬性。例如,如果你有一個關於質量的屬性值差,中等和好,那麼你只需將這些值映射到數字0,1,2或類似的東西。你不能用「興趣」這樣的屬性來做同樣的事情,因爲如果你把0分配給電影,1分給體育,2分給烹飪,那麼你認爲體育比電影更類似於烹飪,當然這是錯誤的。 當你的分類屬性有很多可能的值而不只是三個時,不幸的是事情變得非常糟糕。

https://stats.stackexchange.com/questions/21770/encoding-categorical-features-to-numbers-for-machine-learning

http://www.mathworks.com/support/solutions/en/data/1-8H0STM/index.html

谷歌的

機器學習轉換直截了當,數字

,你會發現有很多的資源和可能的優化的問題。

+1

感謝您的回覆!我的評論太長而不適合單個評論,所以我將其分成多個評論:我實際上試圖找到比將分類變量轉換爲二進制文件更優雅的方法。正如你所提到的,這將會爆炸數據集的維度。假設我採取這種方法,還有另一個潛在的問題。我正嘗試使用SOM進行羣集。在培訓SOM並在生產中部署之後,如果我爲以前未見過的屬性獲得新值,該怎麼辦? –

+0

新值將是另一個二進制列,在我訓練SOM之前並不存在。現在我在輸入數據對象中有一個額外的屬性,我該如何計算到地圖單位的距離並確定BMU?我應該如何調整BMU及其鄰域的權重?我應該在適應時將這個新列添加到原型權重?我引用徐博士的論文,因爲通過將屬性轉換爲距離層次結構,數據集的維度不會改變。 cntd ... –

+0

即使我遇到屬性的新值,我可以簡單地更新距離層次結構並將屬性映射到層次結構中的一個點。但問題出現在我的幾個屬性中,它們有一組值,而不是一個值。 –