K-means聚類算法如何應對數(shù)據(jù)的噪音和離散特征處理的問題?
不請自來:) 先回答你的問題,再順道談談以K-means為原型的幾種針對不同數(shù)據(jù)類型的聚類算法。
問題一:該算法要求訓練數(shù)據(jù)中都是正向數(shù)據(jù),如果訓練數(shù)據(jù)中包含了異常數(shù)據(jù),會導致閾值的值過大,從而異常測試數(shù)據(jù)進來時可能會漏報。
現(xiàn)實中我們很難保證訓練數(shù)據(jù)中沒有異常數(shù)據(jù),那在訓練過程中有沒有什么方法可以減少異常數(shù)據(jù)對訓練結果的干擾?(例如可視化后肉眼識別一些離群的數(shù)據(jù)點,并把它們從樣本中去除?或者按比例縮小閾值?)我的看法:聚類本身就是最常用的異常值檢測方法,大部分非監(jiān)督的異常值檢測都依靠聚類。
離群值(異常值)對非監(jiān)督聚類的影響很明顯,因為需要一邊學習簇的特征,一邊防止異常值的干擾。
并不是每一種聚類都擅長異常值檢測:K-means和層次聚類(hierarchical clustering)對離群值非常敏感,因為其要求將每個點都劃分到一個簇中(此處我們默認的K-means是hard assignment)。
而且其相似度度量(Similarity Measure)默認是sum of euclidean squares,優(yōu)化目標是將簇內(nèi)差異最小化(minimize with-in clustering variation),因此即使單個噪音點也可以對整個簇造成很大的擾動。
常見的解決方法有: