一個無監督學習演算法,如何判斷其好壞呢?

比如說有兩種聚類演算法,怎麼從結果上判斷這兩種演算法性能的優劣呢


建議樓主讀一下這篇文獻ICDM 2010
Understanding of Internal Clustering Validation Measures https://web.njit.edu/~yl473/papers/ICDM10CLU.pdf
文章從compactness,noise,subcluster和skewness幾個方面對一些非監督聚類的評價指標進行評測,並指出SDbw是比較好的評測方案,可以作為參考。


前幾天給電信做一個項目,相當龐大的數據!也是沒有標籤的。我就用 K-Means 來給聚類,然後人為的給它打上標籤。之後 拿出一半的數據來訓練 SVM,然後拿出一半的數據來預測! 所以,完全可以用兩種無監督演算法來聚類,打上標籤,然後都送到SVM裡面,看哪個的預測準確率高!


最簡單的情況:用normalized mutual information

NMI = frac{sum_{s=1}^{K}{sum_{t=1}^{K}{ N_{s,t}log{frac{NN_{s,t}}{N_sN_t}}} } }{sqrt{sum_{s=1}^{K}{N_slog{frac{N_s}{N}}} }sqrt{sum_{t=1}^{K}{N_tlog{frac{N_t}{N}}}}}

它可以度量同一組數據的兩種給標籤的方法之間的差異

所以你可以選取有標籤的數據來訓練,先去掉標籤混到一起,用不同的演算法聚類,聚類之後再按照聚好的類打上標籤,然後分別計算標準標籤(就是原來的標籤)和聚好類之後的標籤之間的差異大小,跟標準標籤相差最小的標籤就是最好的

其他的你去google好了,我也不是專門學ML的,只知道這一種

ref:
Mutual information
Evaluation of clustering


如果你使用的是概率方法,那麼你有model evidence(或者它的近似,例如AIC,BIC)可以當做判據。另外你也可以使用cross-validation的likelihood當近似判據。

例如,以下方法是概率方法:
GMM cluster,PPCA

以下方法不是:
k-means,PCA


終於有人來問這個我最感興趣的話題了。不過是手機回復,說來話長,我就長話短說了:把無監督學習的結果帶給一個有監督的任務來衡量。直接看結果。針對你這個問題,就是一樓哥們說的咯


when in doubt, subsampling

簡單來說你可以以 sqrt{n} 或者更小的隨機subsampling出的樣本去聚類 m次,看看有哪些點分類不太一致;

這樣我們有了variance的估計

bias的話我也沒有辦法

不過如果你演算法不是非常線性或者樣本太少,你要自己算subsampling後如何改聚類演算法來算原聚類演算法的 variance(說多了是淚


likelihood, perplexity之類吧


大部分無監督學習,歸根結底是有監督的,因為你總要評估結果吧


無監督學習演算法我就當是聚類了(ˉ(●●)ˉ)
簡單來說聚類演算法的優異性主要依靠分類結果的好壞來分級,類內越相近,類間越遠越好。
時間複雜度和空間複雜度是錦上添花,在前面的好壞程度差不多的兩個演算法之間可以用這兩個條件來做進一步區分。
不過畢竟我們的時間和空間都不可能無窮,所以一般根據自己的實際情況,來選擇對應的演算法,很多時候我們選擇犧牲一部分性能(這裡指結果的好壞程度)來提升效率(指時間複雜度和空間複雜度,當然很多時候這兩者可以有互換,雖然程度依演算法而變)。


用監督指標
比如聚類就用precision recall來評估,降維就用分類精度損失來評估


推薦閱讀:

TAG:機器學習 | 模式識別 | 聚類 | 無監督學習 | 深度學習(Deep Learning) |