前面寫了分類和回歸的一些演算法,這些演算法都屬於監督學習,本篇的要講的kmeans演算法就屬於非監督學習(unsupervised learning)中聚類問題的乙個重要演算法。
監督學習與非監督學習有什麼區別呢?監督學習訓練所用的資料樣例都是有類別標記(class label)的,而非監督學習所用的資料則不需要類別標記。
先舉個例子
上圖中有一些點,橫縱座標是其兩個特徵值,現在想要把這些點進行標記歸類。我們不知道任何乙個點的類別,但是我們可以根據它們的分布對其進行歸類。畢竟距離近的一些點更有可能是同一類。kmeans演算法原理大概就是這樣。
下面概括的講一下kmeans演算法是怎麼工作的。
演算法接受乙個引數k,使得實現輸入的n個資料物件被劃分為k個聚類,並且有同一聚類中的物件相似度較高,不同聚類中的物件相似度較小。
演算法的思想是以空間中的k個點為中心進行聚類,對最靠近他們的物件歸類。通過迭代的方法逐次更新聚類中心,直到得到最好的聚類結果。
也就是,先在空間的物件中隨機選擇k個點作為k個類的初始中心,根據與這k個中心距離的遠近將所有的樣例點歸為這k個類。然後利用均值等方法更新這k個中心,接著再次根據遠近歸類所有的點。通過這樣不斷迭代的方式最終就能將所有的點較好的分為k個聚類。這裡中心點的更新主要是利用均值。下面通過例子詳細的說明。
當迭代達到一定的次數,或者中心點的變化小於給定的閾值就可以停止迭代了。
總的流程圖如下。
下面舉個具體的例子來詳細說明。
**中有4組資料,分別是a,b,c,d四個藥的兩個特徵值x(weight),y(ph),現在要根據上述的kmeans演算法將其分為兩類。
如上圖,將4組資料的座標點用藍色的點畫在上圖中,因為要分為兩類,所以隨機選擇兩個中心點c1,c2,用紅色的五角星表示。這裡直接選擇a,b兩組資料的點作為中心點,所以將其標為五角星。然後計算4個點與這兩個中心點的距離。
距離用矩陣d表示,為a,b,c,d個點與中心點c1,c2的距離。可以看出,a點歸為中心點c1一類。b,c,d點與中心店c2距離更近歸為第二類。
現在利用均值的方式更新中心點。
c1類只有乙個點a所以不變,c2更變如下:
如圖:
再次同樣的方法計算距離,則可將a,b歸為c1一類, c,d歸為c2一類。
更新中心點過程略過如下圖:
此時依然為a,b一類,c,d一類與前次結果相同,故終止迭代。結果如下。
至此kmeans演算法的計算就完成了。
kmeans演算法的優點是速度快,簡單,缺點是最終的結果跟中心點的選擇相關,容易陷入區域性最優,而且需要輸入乙個k值,有些時候我們可能並不知道要分成多少個模擬較好。
監督學習 非監督學習 半監督學習(主動學習)
統計學習通常包括監督學習 非監督學習 半監督學習以及強化學習,在機器學習的領域中前三種研究的比較多的,也是運用的比較廣泛的技術。監督學習的任務是學習乙個模型,使模型對給定的任意的乙個輸入,對其都可以對映出乙個 結果。這裡模型就相當於我們數學中乙個函式,輸入就相當於我們數學中的x,而 的結果就相當於數...
什麼是監督學習非監督學習,強化學習
機器學習按照學習方式的不同,分為很多的型別,主要的型別分為 什麼是監督學習?利用一組已知類別的樣本調整分類器的引數,使其達到所要求效能的過程,也稱為監督訓練。正如下圖中給出了好多鴨子的特徵那樣,指示出那些是鴨子哪些不是鴨子,然後讓計算機進行學習,計算機要通過學習才能具有識別各種事物和現象的能力。用來...
機器學習筆記 監督學習,無監督學習,半監督學習
這個問題可以回答得很簡單 是否有監督 supervised 就看輸入資料是否有標籤 label 輸入資料有標籤,則為有監督學習,沒標籤則為無監督學習。什麼是學習 learning 學習 乙個成語就可概括 舉一反三。此處以高考為例,高考的題目在上考場前我們未必做過,但在高中三年我們做過很多很多題目,懂...