機器學習非監督學習 kmeans演算法

2021-07-24 14:46:25 字數 1779 閱讀 3399

前面寫了分類和回歸的一些演算法,這些演算法都屬於監督學習,本篇的要講的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 學習 乙個成語就可概括 舉一反三。此處以高考為例,高考的題目在上考場前我們未必做過,但在高中三年我們做過很多很多題目,懂...