我有一個數據集。這個集合中的每個元素都由數字和分類變量組成。分類變量是名義和有序的。 此數據集中有一些自然結構。通常,專家使用他們的「專家知識」對數據集進行分組,例如我的分類,但是我想自動化這個集羣化過程。可理解的集羣化
大多數用於聚類的算法使用對象之間的距離(歐幾里得,馬哈拉諾迪斯等)以將它們分組成簇。但是對於混合數據類型很難找到一些合理的指標,即我們無法找到'玻璃'和'鋼'之間的距離。所以我得出結論,我必須使用條件概率P(feature = 'something' | Class)
和一些依賴它們的效用函數。這對分類變量是合理的,並且假設它們正常分佈,它對數字變量可以正常工作。
因此,我很清楚像K-means這樣的算法不會產生好的結果。
此時我嘗試使用COBWEB算法,這完全符合我對使用條件概率的想法。但是,我面臨另一個障礙:集羣化的結果真的很難解釋,如果不是不可能的話。因此,我想獲得一些描述每個羣集的規則(例如if feature1 = 'a' and feature2 in [30, 60], it is cluster1
),就像分類中的決策樹。
所以,我的問題是:
是否有混合數據類型的作品,併產生集羣的理解(和合理的人類)描述任何現有的集羣化算法。
附加信息:
據我瞭解我的任務就是在概念聚類的領域。由於研究領域的限制,我無法定義一個相似性函數(它是whoal項目的最終目標) - 它在形式化方面非常複雜和無情。據我瞭解,最合理的方法是COBWEB中使用的方法,但我不知道如何適應它,所以我可以得到一個集羣的難以置信的描述。
決策樹
至於有人建議,我想訓練對聚類輸出決策樹,從而獲得集羣的描述爲一組規則。但不幸的是,這個規則的解釋幾乎和原始聚類輸出一樣困難。首先,從根節點開始的幾個第一層規則確實有意義:更接近葉節點 - 我們有更少的感覺。其次,這些規則不符合任何專業知識。
因此,我得出的結論是聚類是一個黑盒子,它不值得試圖解釋它的結果。
此外
我有一個有趣的想法修改「決策樹迴歸」以某種方式的算法:計算組內方差calcualte一個category utility function的istead並把它作爲一個拆分條件。因此,我們應該有一個帶有葉子簇和簇描述的決策樹。但我並沒有試圖這樣做,我不確定準確性和其他一切。
爲什麼不能在class = cluster的地方使用決策樹?我假設你已經有一些可以使用的標記示例... – amit
@amit這就是我沒有標記示例的點,而且我沒有任何現有的類。理想情況下,我希望實現以下內容:輸入數據集 - >聚類算法 - >聚類描述,當專家查看描述時,他說:「是的,就是這樣,我明白了,我也會這樣做。 –
你是否知道類別的數量或類別的成員?如果沒有距離度量標準,確定算法的效果並不好。 – argentage