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