0
本文作者: AI研習(xí)社-譯站 | 2018-08-14 18:00 |
雷鋒網(wǎng)按:本文為AI研習(xí)社編譯的技術(shù)博客,原標(biāo)題 K-Means Clustering: All You Need to Know,作者為 Uday Keith 。
翻譯 | 李鋒 周靜 校對(duì) | 余杭 整理 | MY
在機(jī)器學(xué)習(xí)中,我們經(jīng)常處于函數(shù)逼近的范疇。也就是說(shuō),我們有特定的真實(shí)值(y)和相關(guān)變量(x) 并且我們的目標(biāo)是使用標(biāo)識(shí)一個(gè)函數(shù)來(lái)封裝我們的變量,以及函數(shù)的結(jié)果非常接近真實(shí)值。這個(gè)函數(shù)近似的練習(xí)也被稱(chēng)為監(jiān)督學(xué)習(xí)。
另一方面,無(wú)監(jiān)督學(xué)習(xí)有稍微的不同。我們的數(shù)據(jù)不包括真實(shí)值,而是只有變量。讓我們來(lái)詳細(xì)說(shuō)明下無(wú)監(jiān)督學(xué)習(xí)與監(jiān)督學(xué)習(xí)的不同。
因?yàn)槲覀儧](méi)有真實(shí)值,那么我們的任務(wù)不是預(yù)測(cè)或者接近任何結(jié)果。因此,沒(méi)有損失/代價(jià)函數(shù)提供關(guān)于我們的函數(shù)輸出與真實(shí)值是否接近的反饋。這很復(fù)雜嗎?如果沒(méi)有關(guān)于輸出好壞的反饋,那么怎樣知道我們的輸出是令人滿(mǎn)意的還是完全無(wú)用呢?
在本教程中,我們將了解什么是無(wú)監(jiān)督學(xué)習(xí),全面理解并執(zhí)行一個(gè)常見(jiàn)的無(wú)監(jiān)督學(xué)習(xí)任務(wù),即集群。
聚類(lèi)
在沒(méi) teacher/真實(shí)值的情況下,我們能用變量做什么呢?讓我們用在線(xiàn)零售數(shù)據(jù)集來(lái)舉例吧。這是一個(gè)包含英國(guó)在線(xiàn)零售商在 2010-2011 年期間所有交易的數(shù)據(jù)集。接下來(lái)用 pandas 庫(kù)來(lái)看看數(shù)據(jù)。
K-means 數(shù)據(jù)集中有 8 個(gè)列表以及 50 多萬(wàn)行數(shù)據(jù)
現(xiàn)在,假如你是個(gè)在線(xiàn)零售商,這個(gè)數(shù)據(jù)能用來(lái)干什么呢?可以用來(lái)嘗試識(shí)別客戶(hù)類(lèi)型,那么我能得到多少種客戶(hù)類(lèi)型呢?這就是電子商務(wù)中常見(jiàn)的客戶(hù)細(xì)分任務(wù)。客戶(hù)細(xì)分指的是將客戶(hù)群劃分為與市場(chǎng)營(yíng)銷(xiāo)相關(guān)的、在特定方面類(lèi)似的個(gè)人群體,例如年齡,性別,興趣愛(ài)好和消費(fèi)習(xí)慣。所以這里的任務(wù)是識(shí)別互相相似的客戶(hù),劃分到同一個(gè)組,接著尋找其他類(lèi)似的組或段。
在機(jī)器學(xué)習(xí)中,識(shí)別相似度的任務(wù)稱(chēng)為聚類(lèi)。K-Means 中最常用的聚類(lèi)技術(shù)。
K 均值算法
K-Means 是一種迭代聚類(lèi)算法,它試圖將數(shù)據(jù)中的同構(gòu)或相似的子組聚類(lèi)。我們要做的第一件事情就是明確地定義相似性和差異性。在我們的觀(guān)測(cè)中,簡(jiǎn)單來(lái)說(shuō),可以通過(guò)數(shù)據(jù)點(diǎn)之間的歐幾里得距離來(lái)定義相似性。用下面的例子來(lái)說(shuō)明,根據(jù)個(gè)人的身高和體重圖表,綠色的數(shù)據(jù)點(diǎn)(個(gè)人)比紅色的數(shù)據(jù)點(diǎn)更相似。
相似性的簡(jiǎn)單案例:身高和體重
因此,如果兩個(gè)數(shù)據(jù)點(diǎn)很相似,就將它們視為一個(gè)集群的。理想的情況下,我們傾向于一個(gè)集群的數(shù)據(jù)點(diǎn)彼此間盡可能的接近。然后,我們可以正式地描述集群的目標(biāo):使一個(gè)集群內(nèi),所有集群之間的觀(guān)察距離最小。我們可以用一個(gè)函數(shù)來(lái)表示:
K-means 函數(shù)里的 W(Ck), Σ(xij-xi'j) 指的是,「變量 x 在第 k 個(gè)簇中觀(guān)測(cè)到的歐幾里得距離的平方和」. 外面的Σ 計(jì)算了跨集群間歐幾里得距離的總和(從第 1 個(gè)到第 K 個(gè)集群,故叫 K 均值)。
我們的目的是使函數(shù) W(Ck) 最小化,那么怎么做呢? 實(shí)現(xiàn)這種最小化的迭代算法 (步驟) 是:
在 1 到 K 中隨機(jī)選取一個(gè)數(shù)字給數(shù)據(jù)中的每一行(稍后說(shuō)明如何選擇這個(gè)數(shù))。這是初始的集群分配。
對(duì)每一個(gè)集群計(jì)算它的質(zhì)心,這是每個(gè) K 集群觀(guān)測(cè)時(shí)的特征向量。向量大小由數(shù)據(jù)集中特征的數(shù)量 (p)來(lái)決定。對(duì)于在線(xiàn)零售來(lái)說(shuō),向量大小為 8。
重新訪(fǎng)問(wèn)初始的集群分配,并將每一行重新分配給其質(zhì)心第 p 個(gè)特性的集群。
迭代 (重復(fù)步驟 1-3),直到集群分配停止變化或處于可容忍的水平 (稍后將對(duì)此進(jìn)行詳細(xì)介紹)。
下面的 K-means 類(lèi)是上述步驟的實(shí)現(xiàn)。閱讀注釋可以幫助你理解步驟。
在線(xiàn)零售數(shù)據(jù)集中,如果我們將客戶(hù)分成兩個(gè)區(qū)段,并根據(jù)他們的簇分配類(lèi)別向每個(gè)客戶(hù)發(fā)送營(yíng)銷(xiāo)材料,我們可能過(guò)于籠統(tǒng)地推銷(xiāo)市場(chǎng)了。因此,客戶(hù)可能不會(huì)重回我們的電子商務(wù)網(wǎng)站。另外,如果我們把客戶(hù)分成 100 個(gè)區(qū)段,我們可能在每段上只有少數(shù)客戶(hù),發(fā)送 100 種不同的營(yíng)銷(xiāo)材料將會(huì)是一場(chǎng)噩夢(mèng)。因此,雖然對(duì)于 K 的選擇是一個(gè)商業(yè)決策,但我們確實(shí)有指導(dǎo)我們最終決定的技巧。在將我們的算法應(yīng)用到我們的數(shù)據(jù)之前,有幾點(diǎn)需要解釋。首先,我們?nèi)绾芜x擇數(shù)據(jù)中有需要多少簇? 好,這真是聚類(lèi)問(wèn)題的核心所在。根據(jù)我們的數(shù)據(jù),我們不知道是否有 4 或者 7 種類(lèi)型的客戶(hù)(簇),因?yàn)檫@確實(shí)是一個(gè)無(wú)監(jiān)督的問(wèn)題。因此我們的問(wèn)題是確定最適合的 K 個(gè)簇來(lái)分割我們的數(shù)據(jù)。然而,并沒(méi)有「正確「答案,因?yàn)闆](méi)有真實(shí)值。事實(shí)上,選擇 K 值的過(guò)程通常是一個(gè)商業(yè)決策。
選擇正確的 K 值
彎管法
彎管法允許我們通過(guò)視覺(jué)輔助對(duì) K 值做出判定。我們?cè)囍鴮⑽覀兊臄?shù)據(jù)分解成不同數(shù)量的 K 簇,并根據(jù)相應(yīng)的 W(Ck)畫(huà)出每個(gè) K 簇類(lèi)型。下面是一個(gè)例子。
......
想要繼續(xù)閱讀,請(qǐng)移步至我們的AI研習(xí)社社區(qū):https://club.leiphone.com/page/TextTranslation/784
更多精彩內(nèi)容盡在 AI 研習(xí)社。雷鋒網(wǎng)雷鋒網(wǎng)
不同領(lǐng)域包括計(jì)算機(jī)視覺(jué),語(yǔ)音語(yǔ)義,區(qū)塊鏈,自動(dòng)駕駛,數(shù)據(jù)挖掘,智能控制,編程語(yǔ)言等每日更新。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。