ng機器學習視頻筆記(十一) ——K-均值演算法理論

來源:互聯網
上載者:User

標籤:設計思想   color   設計   均值   ext   平均值   舉例   左右   cluster   

ng機器學習視頻筆記(十一)

——K-均值演算法理論

 

 

(轉載請附上本文連結——linhxx)

 

一、概述

         K均值(K-Means)演算法,是一種無監督學習(Unsupervised learning)演算法,其核心是聚類(Clustering),即把一組輸入,通過K均值演算法進行分類,輸出分類結果。

         由於K均值演算法是無監督學習演算法,故這裡輸入的樣本和之前不同了,輸入的樣本只有樣本本身,沒有對應的樣本分類結果,即這裡的輸入的僅僅是{x(1),x(2),…x(m)},每個x沒有對應的分類結果y(i),需要我們用演算法去得到每個x對應的y。

         K均值演算法,常用的情境包括市場分析中分析不同使用者屬於哪類使用者、社交網路中分析使用者之間的關係、電腦叢集設計分析、星系形成過程分析等。

         無監督學習和監督學習輸入的區別如下:

 

 

二、演算法基本步驟

1、前提

         現假設資料點有m個,需要有K個分類。

2、步驟

         1)隨機初始化K個點,作為K個分類的中心點,每個中心點稱為聚類中心(cluster centroid),也成為簇。是K=2時,隨機選2個簇。

 

         2)根據K個中心點,遍曆所有樣本,分別計算每個樣本到每個中心點的距離,把樣本分到最近的舉例。

 

 

3)分類完成後,根據分類完成的結果,計算在每個分類中的樣本的平均值,把聚類中心移動到這些平均值中。

 

 

         4)重複步驟2、步驟3,直到聚類中心穩定。

         綜上,步驟如下:

        

 

3、特殊情況

         當隨機選到的某個聚類中心,如果在一次分類中,沒有一個樣本被分到這個聚類中心,則如果有固定的分類結果數量要求,則需要重新隨機播放初始聚類中心,重新進行K均值計算。為了速度較快,可以儲存這些沒有任何分類結果的點,在隨機初始聚類中心時,避免選到這些點。

 

三、代價函數

1、符號

         在K均值演算法中,K(大寫)表示分類結果數量(K=3表示樣本要分成3類),k(小寫)表示第k個聚類中心, C(i)表示樣本x(i)所屬的聚類中心編號,μk表示第k個聚類中心的位置,μC(i)表示x(i)所屬的聚類中心位置。

         例如,x(i)被分類到第5個聚類中心,則C(i)=5,μC(i)= μ5。

2、代價函數

         K均值演算法的代價函數,又稱為K均值演算法的dispulsion函數,公式如下:

 

 

         可以證明,對於代價函數的公式:

1)K均值演算法的第二步(即選好聚類中心後,需要把每個樣本分類到對應的聚類中心),對於最佳化代價函數而言,相當於固定μ的值,來計算J(c)的最優情況。

2)演算法的第三步(即通過計算每個聚類的樣本均值重新選定聚類中心),對於最佳化代價函數而言,相當於通過μ的最佳化來確定最優的J。

 

四、初始化聚類中心

1、前提

         隨機初始化聚類中心,前提是要求總的分類數量K小於樣本數量m,否則分類沒有意義。

2、步驟

         1)在m個樣本中,隨機選出K個樣本。

         2)令μ1、μ2…μk等於這K個樣本。

         簡單來說,即在樣本中隨機初始化聚類中心,而不是漫無目的的在整個座標系中來隨機。

3、存在問題——局部最小值

         K均值演算法的代價函數,也存在局部最優解(極小值)的情況,這個對於K均值演算法來說非常不好,如所示:

 

 

         左邊是待分類的樣本,右邊上方是根據日常經驗來說應該被分類的樣子,而右邊下面兩個分類結果,都是出現局部極小值的結果。即一開始隨機初始化的時候,有兩個初始化點都被初始化在本來應該被分在一個類的“地盤”,這就導致後面最佳化的時候,會不斷的按這個本來就錯誤的方式來最佳化。

4、解決方案

         為了避免局部最小值的情況,可以多次進行K均值演算法的運算。每次分類穩定後,記錄該分類的方式,以及該分類方式下最終的代價函數(即每個點到聚類中心點的距離的平方和),然後取這些分類結果中,帶價值最小的分類方式,作為最終的分類方式。

         如所示:

 

 

         通常而言,當執行K均值演算法超過50次,則最終一般可以避免局部最優解的錯誤分類結果。

         另外,局部最優解,一般只在K比較小(K在2~10左右)的時候容易發生,當K非常大時,通常不會發生局部最優解,或者說這種局部最優解和最佳解的差距也不是非常大,可以接受。

 

五、確定分類數量K

         在不確定要分幾類時,需要確定分類數量K。

1、方法一:肘部法則

         肘部法則(Elbow Method),即通過改變K值,描繪出K和代價函數J的映像,並且確定在某個K時,代價函數降低的最多(映像類似人類的肘部),則取這個K作為應當的分類結果,如的左邊的映像所示。

 

 

         但是肘部法則存在問題,如的右圖所示,當K-J的映像,不存在一個劇烈的降低點(從映像中無法明確哪個K是肘部),而是比較平緩的降低,則此時無法通過肘部法則來明確選擇哪個K是最佳的。

2、方法二

         當肘部法則無法確定K時,更通用的方式,是分析當前的業務情境,並且通過業務情境,來明確所需要的分類結果。

         例如是根據 身高和體重的人群分布,需要確定設計的T恤衫的尺寸。例如可以分為3類(左圖)、5類(右圖),分類都是合理的。

         此時,就需要通過認為的經驗分析,明確應該選哪種K作為最佳分類。

 

 

 

六、小結

         K均值演算法,作為無監督學習方法,其思想和分析方式,和監督學習演算法有比較大的不同。應當明確,監督學習是提前告知分類結果,而無監督學習並沒有提前告知分類結果,他們是有不同的業務情境,因此必然設計思想完全不同。

 

 

——written by linhxx

 

更多最新文章,歡迎關注公眾號“決勝機器學習”,或掃描右邊二維碼。

ng機器學習視頻筆記(十一) ——K-均值演算法理論

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.