K-均值算法概述
回顧前面總結(jié)的分類和回歸算法傲醉,它們都有預(yù)期的目標(biāo)變量柬甥,即:“對(duì)于輸入數(shù)據(jù)x能預(yù)測(cè)y”浪慌,也因此這類算法統(tǒng)稱為監(jiān)督學(xué)習(xí)算法洛心。而無(wú)監(jiān)督學(xué)習(xí)算法尋求解決的問(wèn)題是“從數(shù)據(jù)x中能發(fā)現(xiàn)什么?”葬毫,并且無(wú)監(jiān)督學(xué)習(xí)算法最好還能夠解釋“被發(fā)現(xiàn)的是合理的”镇辉。
聚類(Clustering)是一種無(wú)監(jiān)督的學(xué)習(xí),它將相似的對(duì)象歸到同一個(gè)簇中贴捡,有點(diǎn)像對(duì)數(shù)據(jù)進(jìn)行全自動(dòng)分類忽肛,這里的全自動(dòng)真是“全自動(dòng)”,因?yàn)檫B類別都是自動(dòng)構(gòu)建的烂斋,而不是像分類算法那樣事先給出的屹逛。
K-均值(K-means)算法又是聚類算法之一,之所以稱之為K-均值是因?yàn)樗梢园l(fā)現(xiàn)k個(gè)不同的簇汛骂,且每個(gè)簇的中心采用簇中所有數(shù)據(jù)的均值計(jì)算生成罕模。
優(yōu)點(diǎn):容易實(shí)現(xiàn)。
缺點(diǎn):可能收斂到局部最小值帘瞭,在大規(guī)模數(shù)據(jù)集上收斂較慢淑掌。
適用數(shù)據(jù)類型:數(shù)值型數(shù)據(jù)。
入門案例
為便于理解K-均值算法是什么及其原理蝶念,首先構(gòu)建了模擬數(shù)據(jù)抛腕,然后用圖形展示效果(就不講解代碼是怎么實(shí)現(xiàn)的了)芋绸,請(qǐng)看下圖。
工作原理
使用K-均值聚類算法限府,必須指定要?jiǎng)?chuàng)建的簇的數(shù)目k(就是最終分類的數(shù)量夺颤,個(gè)人理解,如果該值是人工指定的胁勺,那么是否是最好的世澜,就需要根據(jù)結(jié)果來(lái)評(píng)判,必要時(shí)調(diào)整再算)姻几。
K-均值算法首先從數(shù)據(jù)集中隨機(jī)選擇k個(gè)作為質(zhì)心宜狐。算法會(huì)計(jì)算每個(gè)點(diǎn)到質(zhì)心的距離。每個(gè)點(diǎn)會(huì)被分配到距其最近的簇質(zhì)心蛇捌,然后緊接著基于新分配到簇的點(diǎn)更新簇質(zhì)心抚恒。以上過(guò)程重復(fù)數(shù)次,直到簇質(zhì)心不再改變络拌。
上述算法簡(jiǎn)單有效俭驮,但是容易受到初始(隨機(jī)選擇的)簇質(zhì)心的影響。為了獲得更好的聚類效果,可以使用更優(yōu)的二分K-均值聚類算法混萝。該算法首先將所有的點(diǎn)作為一個(gè)簇遗遵,然后使用K-均值算法(k=2)對(duì)其劃分。下一次迭代時(shí)逸嘀,選擇有最大誤差的簇進(jìn)行劃分车要。該過(guò)程重復(fù)直到k個(gè)簇創(chuàng)建成功為止。
K-均值算法以及其變種算法并非僅有的聚類算法崭倘,另外稱為層次聚類的方法也被廣泛使用翼岁。
一般流程
1.收集數(shù)據(jù):使用任意方法。
2.準(zhǔn)備數(shù)據(jù):需要數(shù)值型數(shù)據(jù)來(lái)計(jì)算距離司光,也可以將標(biāo)稱型數(shù)據(jù)映射為二值型數(shù)據(jù)再用于距離計(jì)算琅坡。
3.分析數(shù)據(jù):使用任意方法。
4.訓(xùn)練算法:不適用于無(wú)監(jiān)督學(xué)習(xí)残家,即無(wú)監(jiān)督學(xué)習(xí)沒(méi)有訓(xùn)練過(guò)程榆俺。
5.測(cè)試算法:應(yīng)用聚類算法、觀察結(jié)果坞淮≤罱可以使用量化的誤差指標(biāo)如誤差平方和來(lái)評(píng)價(jià)算法的結(jié)果。
6.使用算法:可以用于所希望的任何應(yīng)用碾盐。通常情況下簇質(zhì)心可以代表整個(gè)簇的數(shù)據(jù)來(lái)做出決策晃跺。
可使用場(chǎng)景
1.根據(jù)客戶特征進(jìn)行聚類
2.根據(jù)地理位置(經(jīng)緯度)進(jìn)行聚類
......