二、K-means聚類
給定一個(gè)有M個(gè)對(duì)象的數(shù)據(jù)集圣贸,構(gòu)建一個(gè)具有k個(gè)簇的模型,其中k<=M扛稽。滿足以下條件:
1吁峻、每個(gè)簇至少包含一個(gè)對(duì)象;
2在张、每個(gè)對(duì)象屬于且僅屬于一個(gè)簇用含;
3、將滿足上述條件的k個(gè)簇成為一個(gè)合理的聚類劃分帮匾;
基本思想:對(duì)于給定的類別數(shù)目k啄骇,首先給定初始劃分,通過(guò)迭代改變樣本和簇的隸屬關(guān)系瘟斜,使的每次處理后得到的劃分方式比上一次的好(簇內(nèi)數(shù)據(jù)集距離變小)
K-means算法
K-means算法缸夹,也稱為K-平均或者K-均值,是一種使用廣泛的最基礎(chǔ)的聚類算法螺句,一般作為掌握聚類算法的第一個(gè)算法虽惭。
假設(shè)輸入樣本為T=X1,X2,...,Xm;則算法步驟為(使用歐幾里得距離公式):
1、選擇初始化的k個(gè)類別中心a1,a2,...ak蛇尚。
2芽唇、對(duì)于每個(gè)樣本Xi,將其標(biāo)記位距離類別中心 aj 最近的類別 j 取劫。
3匆笤、更新每個(gè)類別的中心點(diǎn) aj 為隸屬該類別的所有樣本的均值研侣。
4、重復(fù)上面兩步操作疚膊,直到達(dá)到某個(gè)中止條件义辕。
中止條件:
迭代次數(shù)、最小平方誤差MSE寓盗、簇中心點(diǎn)變化率灌砖。
那么初始的分類中心設(shè)置多少個(gè)比較合適?
其實(shí)在實(shí)際算法中傀蚌,K-means聚類的算法在設(shè)置初始分類數(shù)量的操作基显,和KNN中設(shè)置決策樹(shù)的深度一樣,都是機(jī)器學(xué)習(xí)調(diào)參的一部分善炫。需要我們對(duì)業(yè)務(wù)數(shù)據(jù)有一定的敏感度绳姨,人為得設(shè)置一個(gè)初始值肩豁。在設(shè)置好初始的分類中心個(gè)數(shù)K之后葬燎,在算法中不會(huì)自動(dòng)增減分類中心的個(gè)數(shù)荤胁。
比如我想根據(jù)一組數(shù)據(jù)判斷消費(fèi)者的消費(fèi)水平,我們可以人為得設(shè)置3個(gè)分類中心艺谆,對(duì)應(yīng)消費(fèi)者水平的高榨惰、中、低静汤。但最終是否能達(dá)到要求呢琅催?是否一定能夠找到一類人群是高消費(fèi)群體,一類人群是低消費(fèi)群體呢虫给?我不知道藤抡。劃分出來(lái)的數(shù)據(jù)可能實(shí)際上意味著人類體重分類的高、中抹估、低缠黍。這三類代表的含義明顯和我們預(yù)期不同。這也是聚類帶來(lái)的一個(gè)問(wèn)題药蜻,我們?cè)趯?duì)分類問(wèn)題貼標(biāo)簽的時(shí)候要綜合考慮樣本的特征瓷式,人為得出一個(gè)較為合理的分類情況。
少年們要成為優(yōu)秀的產(chǎn)品經(jīng)理谷暮,數(shù)據(jù)分析時(shí)的觀察力很重要啊...
下面看看K-means的幾何意義:
a:根據(jù)數(shù)據(jù)分布我們揣摩可以將他們分成2類蒿往。
b:人為定義了紅點(diǎn)和藍(lán)點(diǎn)2個(gè)分類盛垦。
c:計(jì)算每一個(gè)點(diǎn)到達(dá)兩個(gè)分類的距離湿弦,離誰(shuí)近涂上誰(shuí)的顏色。
d:把分類中心紅點(diǎn)和藍(lán)點(diǎn)腾夯,分別放到兩個(gè)簇的中間颊埃。
e:再把所有樣本點(diǎn)到兩個(gè)分類中心的距離計(jì)算一下蔬充,誰(shuí)近涂上誰(shuí)的顏色。
f:更新分類中心班利,發(fā)現(xiàn)分類中心沒(méi)有變化饥漫,意味著樣本也不會(huì)再發(fā)生變化了,迭代停止罗标。
記K個(gè)簇中心分別為a1,a2,...ak庸队;每個(gè)簇的樣本數(shù)量為N1,N2,...,NK;
使用平方誤差作為目標(biāo)函數(shù)(使用歐幾里得距離),公式為:
要獲取最優(yōu)解闯割,也就是目標(biāo)函數(shù)需要盡可能的小彻消,對(duì)J函數(shù)求偏導(dǎo)數(shù),可以得到簇中心點(diǎn)a更新的公式為:
K-means算法思考
思考:如果使用其它距離度量公式宙拉,簇中心點(diǎn)更新公式是啥?
K-means算法在迭代的過(guò)程中使用所有點(diǎn)的均值作為新的質(zhì)點(diǎn)(中心點(diǎn))宾尚,如果簇
中存在異常點(diǎn),將導(dǎo)致均值偏差比較嚴(yán)重谢澈。
比如一個(gè)簇中有2煌贴、4、6锥忿、8牛郑、100五個(gè)數(shù)據(jù),那么新的質(zhì)點(diǎn)為24缎谷,顯然這個(gè)質(zhì)點(diǎn)離絕大多數(shù)點(diǎn)都比較遠(yuǎn)井濒;在當(dāng)前情況下,使用中位數(shù)6可能比使用均值的想法更好列林,使用中位數(shù)的聚類方式叫做K-Mediods聚類(K中值聚類)
K-means算法是初值敏感的瑞你,選擇不同的初始值可能導(dǎo)致不同的簇劃分規(guī)則。
為了避免這種敏感性導(dǎo)致的最終結(jié)果異常性希痴,可以采用初始化多套初始節(jié)點(diǎn)構(gòu)造不同的分類規(guī)則者甲,然后選擇最優(yōu)的構(gòu)造規(guī)則。
K-means算法的初值敏感:
K-means算法優(yōu)缺點(diǎn)
缺點(diǎn):
1、K值是用戶給定的嫩实,在進(jìn)行數(shù)據(jù)處理前刽辙,K值是未知的,不同的K值得到的結(jié)果也不一樣甲献。
2宰缤、對(duì)初始簇中心點(diǎn)是敏感的。
3、不適合發(fā)現(xiàn)非凸形狀的簇或者大小差別較大的簇慨灭。
4氧骤、特殊值(離群值)對(duì)模型的影響比較大呻疹。
優(yōu)點(diǎn):
1、理解容易筹陵,聚類效果不錯(cuò)刽锤。
2、處理大數(shù)據(jù)集的時(shí)候朦佩,該算法可以保證較好的伸縮性和高效率姑蓝。
3、當(dāng)簇近似高斯分布的時(shí)候吕粗,效果非常不錯(cuò)纺荧。
04 聚類算法 - 代碼案例一 - K-means聚類
05 聚類算法 - 二分K-Means、K-Means++颅筋、K-Means||宙暇、Canopy、Mini Batch K-Means算法