題:
使用離散變量和連續變量對數據集進行聚類
ptikobj
2012-05-10 15:44:37 UTC
view on stackexchange narkive permalink

我有一個數據集X,它有10個維度,其中4個是離散值。實際上,這4個離散變量是有序的,即值越高意味著語義越高/更好。

2 of這些離散變量在某種意義上是分類的,對於每個這些變量,距離例如從11到12的距離與從5到6的距離並不相同。雖然較高的變量值實際上意味著較高,但比例不一定是線性的(實際上,它並沒有真正定義)。

我的問題是:

  • 將通用的聚類算法(例如K-Means然後是高斯混合(GMM))應用於此數據集是否是個好主意?

是否不連續

  • 我是否應該刪除離散變量並僅關注連續變量?
  • 我是否應該更好地離散化連續數據並將離散數據使用聚類算法?
您需要找到一個好的距離度量(通常是群集中最困難的任務):如果您可以找到一個能夠正確,準確地描述您的數據項有(或沒有)相似性的距離度量,那麼您應該不會有任何問題。
談到這兩個分類變量,您實際上將它們描述為序數。現在,其餘2個“普通”變量又如何呢?它們與那些有何不同?
它們也是離散的,但是它們都具有有意義的距離函數,即它們是基於間隔的(如果我不搞亂基於間隔的定義)。
五 答案:
Charles Menguy
2012-05-11 04:50:23 UTC
view on stackexchange narkive permalink

過去,我不得不處理此類問題,我認為可能有兩種有趣的方法:

  • 連續化:使用一系列序列轉換符號屬性整數。有多種方法可以完成此操作,所有方法在本文中進行了描述。您可以嘗試NBF,VDM和MDV算法。

  • 離散化:將連續屬性轉換為符號值。同樣,本文是很多算法,並且對此有一個很好的演講。我相信最常用的方法是Holte的1R,但最好的確定方法是對照EWD,EFD,ID,LD或NDD等算法查看ROC曲線。

一旦所有特徵都放在同一空間中,就會成為常見的聚類問題。

在連續化或離散化之間進行選擇取決於您的數據集以及特徵的外觀,因此有點困難可以這麼說,但我建議您閱讀我給您提供的關於該主題的文章。

Has QUIT--Anony-Mousse
2012-05-10 21:14:56 UTC
view on stackexchange narkive permalink

K-均值顯然沒有任何意義,因為它計算均值(無意義)。 GMM也是如此。

您可能想嘗試使用具有適當距離函數的基於距離的聚類算法,例如DBSCAN。

主要挑戰是找到距離函數!

雖然您可以將不同的距離函數放到k均值中,但它仍會計算平均值,這可能沒有多大意義(並且對於離散值可能會與距離函數混淆)。

無論如何,首先要專注於定義什麼是“相似” 。然後使用類似的定義進行聚類!

srctaha
2016-01-22 11:01:42 UTC
view on stackexchange narkive permalink

如果您願意使用大小為 num_of_samples x num_of_samples 的距離矩陣,也可以使用隨機森林

單擊此處以獲得參考文獻“ 具有隨機森林預測變量的無監督學習”

在原始數據集中進行訓練,並訓練用於將兩者分離的分類器。在分類期間,您將獲得一個樣本間距離矩陣,您可以在該矩陣上測試自己喜歡的聚類算法。

Swapnil Soni
2015-05-29 11:17:54 UTC
view on stackexchange narkive permalink

要採用的混合方法:1)使用分類技術(C4.5決策樹)將數據集分為2類。2)完成後,保留分類變量並繼續使用連續變量進行聚類。

>
我聽不懂你的建議。哪兩個課程,對您有什麼幫助?
我認為Swapnil Soni需要說的是,一旦我們使用分類技術將其分為兩類。然後,我們可以將分類輸出的標籤用作二進制變量。因此,不是所有分類變量,而是指示性二進制變量,然後您的聚類算法可以繼續處理數據(由所有連續加1個二進制變量組成)。我的解釋可能是錯誤的。
很好!


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...