前段時(shí)間老師給我的任務(wù)是讓我使用MapReduces和Spark分別實(shí)現(xiàn)K-means算法來比較MapReduces和Spark。首先問題是K-means算法是什么? K-means算法的中心思想其實(shí)就是迭代,通過不斷的迭代,使聚類效果達(dá)到局部最優(yōu),為什么我們說局部最優(yōu)呢?因?yàn)镵-means算法的
前段時(shí)間老師給我的任務(wù)是讓我使用MapReduces和Spark分別實(shí)現(xiàn)K-means算法來比較MapReduces和Spark。首先問題是K-means算法是什么?
K-means算法的中心思想其實(shí)就是迭代,通過不斷的迭代,使聚類效果達(dá)到局部最優(yōu),為什么我們說局部最優(yōu)呢?因?yàn)镵-means算法的效果的優(yōu)劣性和最初選取的中心點(diǎn)是有莫大關(guān)系的,我們只能在初始中心點(diǎn)的基礎(chǔ)上達(dá)到局部最優(yōu)解。K-means算法是基于距離的聚類算法,采用距離作為相似性的評價(jià)指標(biāo),即認(rèn)為兩個(gè)對象的距離越近,其相似度越大。該算法認(rèn)為簇是由距離靠近的對象組成的,因此把得到緊湊且獨(dú)立的簇作為最終目標(biāo)。我感覺總的來說就是物以類聚。
對于聚類問題,我們事先并不知道給定的一個(gè)訓(xùn)練數(shù)集到底有哪些類別(即沒有指定類標(biāo)簽),而是根據(jù)需要設(shè)置指定個(gè)數(shù)類標(biāo)簽的數(shù)量(但不知道具體的類標(biāo)簽是什么),然后通過K-means算法將具有相同特征,或者基于一定規(guī)則認(rèn)為某一些對象相似,與其它一些組明顯的不同的數(shù)據(jù)聚集到一起,自然形成分組。之后,我們可以根據(jù)每一組的數(shù)據(jù)的特點(diǎn),給定一個(gè)合適的類標(biāo)簽(當(dāng)然,可能給出類標(biāo)簽對實(shí)際應(yīng)用沒有實(shí)際意思,例如可能我們就想看一下聚類得到的各個(gè)數(shù)據(jù)集的相似性)。
在這里我們首先說明一個(gè)概念:質(zhì)心(Centroid)。質(zhì)心可以認(rèn)為就是一個(gè)樣本點(diǎn),或者可以認(rèn)為是數(shù)據(jù)集中的一個(gè)數(shù)據(jù)點(diǎn)P,它是具有相似性的一組數(shù)據(jù)的中心,即該組中每個(gè)數(shù)據(jù)點(diǎn)到P的距離都比到其它質(zhì)心的距離近(與其它質(zhì)心相似性比較低)。
K個(gè)初始類聚類質(zhì)心的選取對聚類結(jié)果具有較大的影響,因?yàn)樵谠撍惴ǖ谝徊街惺请S機(jī)的選取任意k個(gè)對象作為初始聚類的質(zhì)心,初始地代表一個(gè)聚類結(jié)果,當(dāng)然這個(gè)結(jié)果一般情況不是合理的,只是隨便地將數(shù)據(jù)集進(jìn)行了一次隨機(jī)的劃分,具體進(jìn)行修正這個(gè)質(zhì)心還需要進(jìn)行多輪的計(jì)算,來進(jìn)一步步逼近我們期望的聚類結(jié)果:具有相似性的對象聚集到一個(gè)組中,它們都具有共同的一個(gè)質(zhì)心。另外,因?yàn)槌跏假|(zhì)心選擇的隨機(jī)性,可能未必使最終的結(jié)果達(dá)到我們的期望,所以我們可以多次迭代,每次迭代都重新隨機(jī)得到初始質(zhì)心,直到最終的聚類結(jié)果能夠滿足我們的期望為止。
1. 首先輸入k的值,即我們希望將數(shù)據(jù)集D = {P1, P2, …, Pn}經(jīng)過聚類得到k個(gè)分類(分組)。
2. 從數(shù)據(jù)集D中隨機(jī)選擇k個(gè)數(shù)據(jù)點(diǎn)作為質(zhì)心,質(zhì)心集合定義為:Centroid = {Cp1, Cp2, …, Cpk},排除質(zhì)心以后數(shù)據(jù)集O={O1, O2, …, Om}。
5. 如果新計(jì)算的質(zhì)心和原來的質(zhì)心之間的距離達(dá)到某一個(gè)設(shè)置的閾值(表示重新計(jì)算的質(zhì)心的位置變化不大,趨于穩(wěn)定,或者說收斂),可以認(rèn)為我們進(jìn)行的聚類已經(jīng)達(dá)到期望的結(jié)果,算法終止。
6. 如果新質(zhì)心和原來之心距離變化很大,需要迭代2~5步驟。
這是之前整理的一份,剛剛翻出來,現(xiàn)在貼出來,以便之后查看。
原文地址:形象理解K-Means算法, 感謝原作者分享。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com