聚類算法--K-means, 層次聚類以及特征選擇

雖然很突然,但我們這一篇文章介紹在R里面用知名的iris data set 來做一下簡單的聚類對比。
(site:http://archive.ics.uci.edu/ml/datasets/Iris)
(data:http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data?)
(http://archive.ics.uci.edu/ml/machine-learning-?databases/iris/iris.names).
首先是Kmeans

下方是具有基本功能的層次聚類,以及相應地調整距離的計算方法,因為 K-means 函數(shù)不允許用戶調整距離屬性,這里單獨拿出來對比一下。另外需要注意的是,層次聚類的商業(yè)應用其實比較單一,就結果而言不一定更好,但是很多時候經過調整可以比較直觀看到聚類的樹狀結果,結果圖片過長我這里就先不展開了:

相關方法也有助于高維大型數(shù)據(jù)集的聚類或其他無監(jiān)督ML方法 ,by?Jason Brownlee?介紹了三個理念:?
http://machinelearningmastery.com/feature-selection-with-the-caret-r-package/
1. Generally, you want to remove attributes with an absolute correlation of 0.75 or higher.
2. Rank Features By Importance
3. Automatic featureselection methods
第一二個大家需要考慮進特征工程中,盡可能作為routine的常規(guī)工作。第三個的實現(xiàn)會復雜一些(例如通過自編碼器),這里也先帶過吧。

最后要提的是,實際上對于聚類問題,很多時候還有類別數(shù)量的K確定的問題,這里或者經驗主義,或者基于肘部曲線的計算,或者直接gridsearch出不同K的結果然后對比分類的上準確度,都是可以滿足實際業(yè)務場景的做法。