K-means介紹
K-means算法是聚類分析中使用最廣泛的算法之一。它把n個對象根據他們的屬性分為k個聚類以便使得聚類滿足:同一聚類中的對象相似度較高;而不同聚類中的對象相似度較小。基本思想如下:
Transwarp Discover中的K-means算法:txKmeans
Transwarp Discover實現了分布式的K-means算法,名為txKmeans。它通過對輸入文件中的訓練數據進行學習,生成一個kmeans聚類模型, 具體用法見下:
實戰用例
Transwarp Discover可以從HDFS和Transwarp Inceptor中讀取數據。并且可以將數據直接用于txKmeans進行計算,同時Transwarp Discover支持可視化展現,下面以一個簡單數據為例進行演示:
示例代碼:
代碼執行效果如圖。
右圖中,彩色的實心點為數據的散點圖,通過txKmeans計算后得到數據的中心為KPoints,藍色的空心點就是聚類后的中心,該圖清晰的展現了txKmeans的聚類效果。
實際應用
實際生產中,K-means被大量運用的領域之一是電商的商品標簽系統。星環科技在為一家大型旅游產品電商打造旅游線路推薦系統時就用到了K-means算法。這家電商數據庫中有海量景點,打造推薦系統的第一步是將這些景點進行粗略的聚類,為每一類打上標簽,以便下一步的細分。星環科技的系統會從各個景點的描述中獲取主題,例如“人文”、“戶外”、“美食”等等,得到類似下面的數據:
這樣,每個景點對應的數據都可以看做一個高維向量:
上海東方明珠:(1,0,1,0,…)
上海云南路:(1,1,0,1,...)
上海科技館:(1,0,1,0,...)
這些向量可以讓我們將一個個景點看做高維空間中的一個個點。對這些點使用K-means算法,就能夠將描述相近的景點聚在一起,得到初步的景點聚類。接下來,利用Transwarp Discover中的其他機器學習算法,比如Apriori算法、協同過濾等,可以進一步打造旅游線路推薦系統。
想要了解Transwarp Discover中的Apriori算法、協同過濾等算法嗎?請繼續關注我們的Transwarp Discover分布式機器學習算法專題!