《西瓜書》筆記09 聚類

2021-08-05 21:49:43 字數 2958 閱讀 1489

無監督學習:訓練樣本的標記資訊是未知的。目標是通過對無標記樣本的學習揭示資料內在性質,為進一步數學分析提供基礎。

此類學習任務中研究最多,應用廣泛的是聚類。

聚類:試圖將資料集中的樣本劃分為若干個通常互不相交的子集。每個子集稱為乙個(cluster)。

每個簇可能對應於一些潛在概念。這些概念對於聚類演算法而言事先未知。聚類過程僅能自動形成簇結構。簇所對應的概念語義需有使用者把握。

聚類可作為乙個單獨過程,也可作為分類等其他任務的先驅。比如商戶定義使用者型別不太容易,可先聚類根據結果將每個簇定義乙個類,再基於這些類訓練分類模型,用於判別新使用者。

聚類效能:評估聚類好壞。

直觀的:簇內相似度高,簇間相似度低。

大致分為兩類:

對資料集d,假定聚類給出的簇為c1

,c2,

...,

ck。參考模型給出乙個簇劃分c∗

。將樣本兩兩配對,我們定義四個集合:

匯出一些常用的聚類效能外部指標:

對於聚類結果的簇劃分,可有:

由上述推導出常用的聚類效能內部指標:

兩個向量i和j,最常用的是閔可夫斯基距離,即(i-j)的lp範數。

p = 1,曼哈頓距離

p = 2,歐氏距離

連續屬性,即數值屬性,可直接用距離計算。

離散屬性,即列名屬性,無序屬性,不能直接用閔可夫斯基距離計算。採用vdm(value difference metric),某屬性上取不同值時的所佔比例的差的lp範數。

基於原型的聚類。假設聚類結構能通過一組原型刻畫,所謂原型,指的是樣本空間具有代表性的點。

通常,此類聚類演算法先對原型初始化,然後對原型進行迭代更新求解。採用不同的原型表示,不同的求解方式,產生不同的演算法。

最小化平方誤差:e=

∑i=1

k∑x∈

ci||

x−x^

||22

下標2表示l2範數,根號下的平方和。右上角2表示去掉根號,則是平方和。

e刻畫了簇內樣本間的圍繞簇均值向量的緊密程度,e值越小簇內樣本值相似度越高。

最小化e是個np難問題。k均值演算法採用貪心策略,迭代優化來近似求解。

k-means演算法

輸入:樣本集d,聚類簇數k

輸出:簇劃分

過程:(1)從d中選擇k個樣本作為初始均值向量

(2)while(當前均值向量不更新時)

(2-1)遍歷各樣本,計算樣本與k個均值向量的距離。距離最小的均值向量確定樣本的簇標記。將樣本劃分至對應簇。

(2-2)遍歷k個簇。計算每個簇新的均值向量。如果不等於之前的則更新,否則保持不變。

直至各均值向量不再更新。或者達到最大執行輪數,或者最小調整閾值內。

lvq假設資料樣本帶有類別標記。學習時利用樣本的這些監督資訊來輔助聚類。

與k均值,lvq用原型向量來刻畫聚類結構不同,高斯混合聚類採用概率模型來表達聚類原型。

常採用em演算法進行迭代優化求解。

基於密度的聚類(density-based clustering)

假設聚類結構能通過樣本分佈的緊密程度(距離度量)確定。通常,密度聚類演算法從樣本密度的角度來考察樣本之間的可連線性,並基於可連線樣本不斷靠站聚類簇以獲得最終結果。

其基於一組鄰域引數,刻畫樣本分佈的緊密程度。

如上圖,虛線表示鄰域。令minpts=3,則x1是核心物件(鄰域至少包含min個樣本),鄰域內的點為密度直達點(x2)。通過密度直達的非相鄰點(x3)為密度可達點。若兩個點之間存在乙個點x1,分別可以密度可達這兩個點,則這兩點成為密度相連(x3,x4)。

dbscan將簇定義為:由密度可達關係匯出的最大的密度相連樣本集合。

即該簇內,任意兩點為密度相連。且能密度可達的點都包含進來了。

dbscan演算法:

輸入:樣本集d,鄰域引數(距離,minpts)

輸出:簇劃分

過程:(1)初始化核心物件集為空

(2)對樣本集物件遍歷。對每乙個點,確定其領域內的點個數,若大於min則加進核心物件。

(3)初始化簇數k=0,未訪問樣本集合d。

while(未訪問樣本集合為空)

隨機選擇乙個核心物件為種子,找出由他可密度可達的所有樣本,這就構成了第乙個聚類簇。然後將該聚類簇中的物件,從核心物件中去除。再從核心物件更新集中選擇種子生成下乙個聚類簇。

不斷重複,直至核心物件集為空,while結束。

可以想象,當簇比較緊密時,則演算法傾向於將其作為乙個簇,越緊密,好像密度越大,估計這就是名稱的來歷。簇若比較散,則除了鄰域,不會合併。

hierarchical clustering。不同層次上對資料集進行劃分,從而形成樹形的聚類結構。劃分可採用自底向上的聚合策略。也可採用自頂向下的分拆策略。

agnes(agglomerative nesting,成團的巢狀),自底向上聚合

先將每個樣本看做乙個初始聚類簇,然後演算法執行的每一步中找出距離最近的兩個聚類簇進行合併,不斷重複,直至達到預設的聚類簇個數。

如何計算兩個聚類簇之間的距離?每個簇是樣本集合,採用關於集合的某種距離即可。

兩個簇的最小距離:紅線

兩個簇的最大距離:黑線

兩個簇的平均距離:兩邊全連線[4*4]後算平均(sum_dist/[4*4])

三種距離下,agnes分別稱為單鏈結,全鏈結,均鏈結演算法。

聚類的新演算法出現最多,最快。其不存在客觀標準。

西瓜書筆記3

續上一章的模型和模型評估後,這個線性模型是乙個具體模型。它的優點在於簡單易建,能夠作為非線性非線性模型的基礎。而它的本質就是應用函式進行資料的結果 關於線性回歸,是對樣例特徵做線性加權,輸出 結果,盡量使得 結果和真實輸出值之間的均方誤差最小化。這裡涉及到乙個特徵屬性的量化問題,有些屬性可以直接量化...

西瓜書閱讀筆記1

根據已有的知識經驗,形成模型。並根據模型來感知未知的新事物的過程。身高體重 膚色18070黃 17562 白18580黑 樣本 上面 中,每一行就是乙個樣本。乙個樣本包含了一種事物的完整屬性,這些屬性不重複。資料集 所有的樣本的總和,稱為資料集。特徵 例如,身高就是一種特徵,膚色也是一種特徵。也可以...

西瓜書AdaBoost演算法筆記

adaboost 演算法有多種推導方式,比較容易理解的是基於 加性模 型 additive model 即基學習器的線性組合 即每乙個個體學習器會有乙個用於累加的權值,該權值是根據個體學習器的準確性來確定的,通過最小化個體學習器的加權損失得來 後面會推導 演算法流程的推導過程 1 指數損失函式的可行...