在「無監督學習」(ps:有x無y類型的數據)中,訓練樣本的標記信息是未知的,目標是經過對無標記訓練樣本的學習來揭示數據的內在性質及規律,爲進一步獲得數據分析提供基礎。這類學習任務中研究最多、應用最廣的是「聚類」。聚類試圖將數據集中的樣本劃分若干個一般是不相交的子集,每一個子集稱之爲一個簇。經過這樣的劃分,每一個簇可能對應於一些潛在的概念或類別。注意:這些概念對聚類算法而言事先是未知的,聚類過程僅能自動造成簇結構,簇所對應的概念語義需由使用者來把握和命名。算法
基於不一樣的學習策略,人們設計出多種類型的聚類算法。在介紹相應的算法以前,咱們先討論聚類算法涉及到的性能度量和距離計算,在接着介紹相關的聚類算法。
性能
1. 性能度量學習
也稱爲「有效性指標」,來評估聚類結果好壞,也能夠直接將其做爲聚類過程的優化目標,從而很好地獲得符合要求的聚類結果。優化
直觀上看,聚類是「物以類聚」,即同一簇的樣本儘量彼此類似,不一樣簇的樣本儘量不一樣。總之,聚類結果的「簇內類似度」高且「簇間類似度」低。spa
聚類性能度量大體有兩類:設計
1. Jaccard係數(Jaccard Coeffecient,JC)
blog
2. FM指數(Fowlkes and Mallows Index, FMI)ci
3. Rand指數(Rand Index, RI)原型
上述性能度量的結果值均在[0,1]區間,值越大越好。數據分析
1. DB指數(Davies-Bouldin Index, BDI)
2. Dunn指數(Dunn Index, DI)
DBI的值越小越好,而DI則相反,值越大越好。
2. 距離計算
距離度量需知足一些基本性質:
最經常使用的是「閔可夫斯基距離」(Minkowski distance),給定樣本,距離爲:
這個式子,當p≥1時,知足距離度量的基本性質。距離越大,類似度越小。特別地,當p=2時,閔可夫斯基距離就是歐式距離;當p=1時,閔可夫斯基距離就是曼哈頓距離。
3. 聚類算法
3.1 原型聚類
原型聚類即「基於原型的聚類」,此類算法假設聚類結構能經過一組原型刻畫,在現實聚類任務中極爲經常使用。算法先對原型進行初始化,而後對原型進行迭代更新求解。採用不一樣的原型表示、不一樣的求解方式,將產生不一樣的算法。
(1)k均值算法:對聚類所得簇劃分以最小化平方偏差的方式訓練模型,採用貪心策略,經過迭代優化來近似求解。
(2)學習向量量化:Leaening Vector Quantization, LVQ, 與k均值算法相似,也是試圖嘗試找到一組原型向量來刻畫聚類結構,但與通常聚類算法不用,LVQ假設數據樣本帶有類別標記,學習過程利用樣本的這些監督信息來輔助聚類。
(3)高斯混合聚類:採用機率模型來表達聚類原型,簇劃分則由原型對應後驗機率肯定。
3.2 密度聚類
也稱「基於密度的聚類」,此算法假設聚類結構能經過樣本分佈的緊密程度肯定。一般情形下,密度聚類算法從樣本密度的角度來考察樣本之間的可鏈接性,並基於可鏈接樣本不斷擴展聚類簇以得到最終的聚類結果。-DBSCAN算法等。
3.3 層次聚類
試圖在不一樣層次對數據集進行劃分,從而造成樹形的聚類結構。數據集的劃分可採用自底向上獲得聚合策略,也可採用自頂向下的分拆策略。--AGNES算法等。