1. 程式人生 > 其它 >【MindSpore:跟著小Mi一起機器學習吧!】聚類演算法

【MindSpore:跟著小Mi一起機器學習吧!】聚類演算法

一週未見,甚是想念!今天小Mi帶大家學習聚類演算法!也就是主流的監督學習演算法我們已經學完了,本期我們開始接觸無監督學習演算法。廢話不多說,跟著小Mi開始學習吧~

1 無監督學習

什麼是無監督學習呢?首先我們先回顧下非常熟悉的監督學習演算法:通常典型的監督學習中會有一個帶有標籤的訓練集,根據這個訓練集可以擬合假設函式,從而找到能夠區分正樣本和負樣本的決策邊界。那麼無監督學習大家從字面上是不是已經可以理解啦?顧名思義,無監督學習的資料沒有附帶任何標籤,計算機需要自主學習無標籤資料。

圖中的訓練集可以寫成,沒有標籤。也就是說,在非監督學習中,將一系列無標籤的訓練資料,輸入到一個演算法中,然後通過演算法找出資料的內在關聯和結構。而上圖中的資料看起來可以分成兩個分開的點集(稱為簇),如果演算法可以找出這些點集,那麼該演算法就可以稱之為聚類演算法。

那麼聚類演算法一般用來做什麼呢?

比如市場分割——某金融機構資料庫中儲存了許多客戶的資訊,將他們分成不同的客戶群,這樣就可以對不同型別的客戶分別銷售產品或者分別提供更適合的服務。社交網路分析:網路公司會關注使用者的一些資訊,比如說:你經常跟哪些人聯絡,而這些人又經常給哪些人發郵件,由此可以找到關係密切的人群。當然,還可以使用聚類演算法來更好地管理資料中心、瞭解星系的形成等等。

2 K-Means

而聚類演算法中比較常見的有K-均值聚類演算法——演算法將一個未標記的資料集聚類成不同的組。

K-均值是一個迭代演算法,假設有一個無標籤的資料集如圖所示,將其分為兩個簇,執行K均值演算法,具體操作如下:

第一步隨機生成兩點,這兩點就可以稱之為聚類中心,也就是圖上兩個叉的位置。

K-均值演算法的主要工作就是簇分配和移動聚類中心。每次內迴圈的第一步就是進行簇分配,也就是遍歷每個樣本(圖上的每個綠點),然後根據每一個點是與紅色聚類中心更近還是藍色聚類中心更近來將每個資料點分配給兩個聚類中心之一。

具體來說,就是遍歷資料集,然後將每個點歸為紅色陣營還是藍色陣營,這就是簇分配的工作內容。

而內迴圈的第二步就是移動聚類中心,將兩個聚類中心移動到同色點的均值處,所以我們需要找出所有的紅點然後計算出它們的均值(紅色點的平均位置),然後把紅色的聚類中心移動過去,藍色的聚類中心也同理。然後將這兩個步驟一直迴圈,最終直至紅色和藍色聚類中心不再改變,這時K均值便已聚合。

總結來說,K均值聚類演算法的工作步驟如下:

1.隨機初始化個聚類中心,;

2.對於資料集中的訓練樣本(),計算與箇中心點的距離,與距離最近的中心點關聯起來,與同一個中心點關聯的所有點聚成一類;

3.計算每一組的平均值,並將該組所關聯的中心點移動到平均值的位置;

4.重複步驟2和3至中心點不再變化。

3隨機初始化

在執行K-均值演算法之前,需要隨機初始化所有的聚類中心點:

1.選擇,即聚類中心點的個數要小於所有訓練集例項的數量

2.隨機選擇個訓練例項,然後令個聚類中心分別與這個訓練例項相等

K-均值的一個問題在於,它有可能會停留在一個區域性最小值處,而這取決於初始化的情況。

為了解決這個問題,通常需要多次執行K-均值演算法,每一次都重新進行隨機初始化,最後再比較多次執行K-均值的結果,選擇代價函式最小的結果。這種方法在較小的時候(2--10)還是可行的,但是如果較大,這麼做也可能不會有明顯的改善。

4目標優化

而在K-均值演算法中的優化目標是需要最小化所有資料點與其所關聯的聚類中心點之間的距離之和,因此K-均值的代價函式(又稱畸變函式Distortion function)為:

其中代表與最近的聚類中心點,優化目標是找出使得代價函式最小的和。

因此K-均值迭代演算法中,第一個迴圈是用於減小引起的代價,而第二個迴圈則是用於減小引起的代價。迭代的過程一定會是每一次迭代都在減小代價函式,不然便是出現了錯誤。

5聚類數的確定

如何選擇聚類數通常根據不同的問題,人工進行選擇。需要考慮運用K-均值演算法聚類的動機是什麼,然後選擇能最好服務於該目標的聚類數。

選擇聚類數目的方法時,可能會涉及“肘部法則”——我們用一個聚類來執行K均值聚類方法,所有的資料都會分到一個聚類裡,然後計算成本函式或者計算畸變函式。

改變值,也就是聚類類別數目的總數,可能會得到一條類似於上圖中的曲線,神似一個人的肘部,這就是“肘部法則”。圖中畸變值會迅速下降,從1到2,從2到3之後,在3的時候達到一個肘點;之後,畸變值就下降的非常慢,看起來就可以明確得知使用3個聚類進行聚類是正確的。

例如,某工廠需要指定T-shirt尺寸的型別,可以分成3個尺寸,也可以分成5個尺寸,這樣的選擇是建立在回答“聚類後製造的T-shirt是否能較好地適合客戶”這個問題的基礎上作出的。

聚類演算法需要參考的資料:

1.相似度/距離計算方法總結

A.閔可夫斯基距離Minkowski/(其中歐式距離:)

B.傑卡德相似係數(Jaccard):

C.餘弦相似度(cosine similarity):

維向量和的夾角記做,根據餘弦定理,其餘弦值為:

D.Pearson皮爾遜相關係數:

Pearson相關係數即將、座標向量各自平移到原點後的夾角餘弦。

2.聚類的衡量指標

A.均一性:

類似於精確率,一個簇中只包含一個類別的樣本,則滿足均一性。其實也可以認為就是正確率(每個 聚簇中正確分類的樣本數佔該聚簇總樣本數的比例和)

B.完整性:

類似於召回率,同類別樣本被歸類到相同簇中,則滿足完整性;每個聚簇中正確分類的樣本數佔該型別的總樣本數比例的和

C.V-measure:

均一性和完整性的加權平均

D.輪廓係數

樣本的輪廓係數:

簇內不相似度:計算樣本到同簇其它樣本的平均距離為,應儘可能小。

簇間不相似度:計算樣本到其它簇的所有樣本的平均距離,應儘可能大。

輪廓係數:值越接近1表示樣本聚類越合理,越接近-1,表示樣本應該分類到另外的簇中,近似為0,表示樣本應該在邊界上;所有樣本的的均值被成為聚類結果的輪廓係數。

E.ARI

資料集共有個元素,兩個聚類結果分別是:

和的元素個數為:

記:

好啦,今天小Mi給大家帶來的聚類演算法就已經介紹完畢啦,下期我們學習如何進行主成分分析和資料降維。我們下期,再見呦(揮手十分鐘)!