做者:櫻花豬算法
摘要:機器學習
本文爲七月算法(julyedu.com)12月機器學習第八次次課在線筆記。聚類算法是一種常見的無監督的學習方法,概念簡單在圖像、機器學習中都有應用。目前有許多聚類方法,本次課程將一一探討各類各樣的聚類算法。ide
引言:學習
聚類算法在很早就接觸過,簡單的說就是經過對於某些相關性的測量來將樣本分紅不一樣的類別,聚類算法除了在機器學習中有所應用在圖像分割時也是一種很是好的思路。本次課程從咱們熟悉的K-means聚類開始講起,介紹了層次聚類、密度聚類、譜聚類等方法。文章的最後還介紹了隨機遊走與標籤傳遞算法。此次課程內容簡單卻又很是的實用。大數據
預備知識:優化
矩陣論;熵;spa
聚類3d
K-meansorm
二分K均值聚類;輪廓係數;對象
層次聚類
凝聚的層次聚類(AGENS)算法;分裂的層次聚類(DIANA)算法
密度聚類
DBSCAN算法;密度最大值聚類;
譜聚類
未正則拉普拉斯矩陣;隨機遊走拉普拉斯矩陣;對稱拉普拉斯矩陣;
標籤傳遞算法
1、聚類
1、聚類定義
聚類就是對大量未知標註的數據集,按數據的內在類似性將數據集劃分爲多個類別,使類別內的數據類似度較大而類別間的數據類似度較小。聚類是一種無監督的學習方法。(無監督:沒有標準答案)
二、類似度/距離計算方法總結
須要關注這些類似度之間的關係、公式意義和優化計算方法。
三、聚類的基本思想
對於給定的類別數目k,首先給出初始劃分,經過迭代改變樣本和簇的隸屬關係,使得每一次改進以後的劃分方案都較前一次好。
2、K-mean算法
K-means算法,也被稱爲k-平均或k-均值,是一種普遍使用的聚類算法,或者成爲其餘聚類算法的基礎。
一、算法步驟:
a. 初始化聚類中心個數和聚類中心點。
b. 對於每一個樣本將其標記爲距離類別中心最近的類。
c. 將每一個類別中心更新爲隸屬該類別的全部樣本的均值。
d. 重複最後兩步,直到類別中心的變化小於某閾值。
停止條件:迭代次數/簇中心變化率/最小平方偏差MSE(MinimumSquaredError)
二、改進方案:二分K均值聚類
將內間距大的類分開,將內間距小兩個類之間聚類大的合併。
三、K-means聚類方法總結
優勢:
a. 是解決聚類問題的一種經典算法,簡單、快速
b. 對處理大數據集,該算法保持可伸縮性和高效率
c. 當簇近似爲高斯分佈時,它的效果較好
缺點:
a. 在簇的平均值可被定義的狀況下才能使用,可能不適用於某些應用
b. 必須事先給出k(要生成的簇的數目),並且對初值敏感,對於不一樣的初始值,可能會致使不一樣結果。
c. 不適合於發現非凸形狀的簇或者大小差異很大的簇
d. 對躁聲和孤立點數據敏感
可做爲其餘聚類方法的基礎算法,如譜聚類
四、輪廓係數(Silhouette)
根據樣本i的簇內不類似度ai和簇間不類似度bi,定義樣本i的輪廓係數:
接近1,則說明樣本i聚類合理;
接近-1,則說明樣本i更應該分類到另外的簇;若
近似爲0,則說明樣本i在兩個簇的邊界上
全部樣本的的均值稱爲聚類結果的輪廓係數,是該聚類是否合理、有效的度量。
3、層次聚類方法
一、概述:
層次聚類方法對給定的數據集進行層次的分解,直到某種條件知足爲止。具體又可分爲
凝聚的層次聚類:AGNES算法:一種自底向上的策略,首先將每一個對象做爲一個簇,而後合併這些原子簇爲愈來愈大的簇,直到某個終結條件被知足。
分裂的層次聚類:DIANA算法:採用自頂向下的策略,它首先將全部對象置於一個簇中,而後逐漸細分爲愈來愈小的簇,直到達到了某個終結條件。
二、凝聚的層次聚類(AGENS)算法
AGNES(AGglomerativeNESting)算法最初將每一個對象做爲一個簇,而後這些簇根據某些準則被一步步地合併。兩個簇間的距離由這兩個不一樣簇中距離最近的數據點對的類似度來肯定;聚類的合併過程反覆進行直到全部的對象最終知足簇數目。
DIANA(DIvisiveANAlysis)算法是上述過程的反過程,屬於分裂的層次聚類,首先將全部的對象初始化到一個簇中,而後根據一些原則(好比最大的歐式距離),將該簇分類。直到到達用戶指定的簇數目或者兩個簇之間的距離超過了某個閾值。
4、密度聚類方法
一、概述:
密度聚類方法的指導思想是,只要樣本點的密度大於某閾值,則將該樣本添加到最近的簇中。
(優勢)這類算法能克服基於距離的算法只能發現「類圓 形」(凸)的聚類的缺點,可發現任意形狀的聚類,且對噪聲數據不敏感。(缺點)但計算密度單元的計算複雜度大,須要創建空間索引來下降計算量。
二、DBSCAN算法
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)
一個比較有表明性的基於密度的聚類算法。 與劃分和層次聚類方法不一樣,它將簇定義爲 密度相連的點的最大集合,可以把具備足夠高密度的區域劃分爲簇,並可在有「噪聲」的數據中發現任意形狀的聚類
算法流程:
a. 若是一個點p的ε-鄰域包含多於m個對象,則建立一個p做爲核心對象的新簇;
b. 尋找併合並核心對象直接密度可達的對象;
c. 沒有新點能夠更新簇時,算法結束。
因爲包含過少對象的簇被認爲是噪聲,這種算法的抗噪性比較好。
三、密度最大值聚類(2014年science)
算法核心:
那些有着比較大的局部密度和很大的高密距離
的點被認爲是簇的中心;
高密距離較大但局部密度
較小的點是異常點;
肯定簇中心以後,其餘點按照距離已知簇的中心最近進行分類。
這種方法能夠自動選擇聚類中心,而且結合了DBSCAN算法的抗噪聲的優勢。
5、譜聚類
一、譜:
方陣做爲線性算子,它的全部特徵值的全體統稱方陣的譜。
二、譜半徑:
方陣的最大值稱爲譜半徑。
矩陣的譜半徑:的最大特徵值
三、譜聚類概述:
譜聚類是一種基於圖論的聚類方法,經過對樣本數據的拉普拉斯矩陣的特徵向量進行聚 類,從而達到對樣本數據聚類的目的。(降維)
四、未正則拉普拉斯矩陣的譜聚類算法:
輸出N個點{Pi},簇數目K。
a. 計算n×n的類似度矩陣W和度矩陣D
b. 計算拉普拉斯矩陣L=D-W
d. 令是U的第i行的向量
e. 用k-means算法將點聚類成簇
f. 輸出簇
5、譜聚類算法:隨機遊走拉普拉斯矩陣(效果最好)
a. 計算n×n的類似度矩陣W和度矩陣D
b. 計算拉普拉斯矩陣
c. 計算L的前k個特徵向量,將k個列向量
組成矩陣
d. 令是U的第i行的向量
e. 用k-means算法將點聚類成簇
f. 輸出簇
六、譜聚類算法:對稱拉普拉斯矩
輸出N個點{Pi},簇數目K。
a. 計算n×n的類似度矩陣W和度矩陣D
b. 計算拉普拉斯矩陣
c. 計算L的前k個特徵向量,將k個列向量
組成矩陣
e. 將依次單位化,使得
f. 用k-means算法將點聚類成簇
g. 輸出簇
附錄:拉普拉斯矩陣及其性質
L是對稱半正定矩陣,最小特徵值是0,相應的特徵 向量是全1向量。
5、標籤傳遞算法
對於部分樣本的標記給定,而大多數樣本的標記未知的情形,是半監督學習問題。
標籤傳遞算法(Label Propagation Algorithm,LPA),將標記樣本的標記經過必定的機率傳遞給未標記樣本,直到最終收斂。