機器學習之無監督學習的聚類算法詳解

聚類是一種無監督的學習,它將相似的對象歸到同一個簇中。它有點像全自動分類。聚類方法幾乎可以應用於所有對象,簇內的對象越相似,聚類的效果越好。

K-均值聚類算法

基本概念

:假定有一些數據,現在將相似數據歸到一起,簇識別會告訴我們這些簇到底都是些什麼。聚類與分類的最大不同在於,分類的目標事先已知,而聚類則是類別未知,其產生的結果和分類相同。
K-均值中的K(簇個數)是自己給定的,k是多少就有多少個簇。
質心:均值,即向量各維取平均,即簇中所有點的中心來描述。
距離的度量:常用歐氏距離 ( x2+y2)\sqrt{x^2+y^2} )餘弦相似度(通過測量兩個向量的夾角的餘弦值來度量它們之間的相似性),大多情況下都要先標準化
優化目標mini=1KxCidist(ci,x)2min \sum_{i=1}^{K}\sum_{x\in{Ci}}dist(c_i,x)^2 就是使所有簇裏的點到質心的距離加起來最小

工作流程:

  • 隨機確定k個初始點作爲質心
  • 然後將數據集中的每個點分配到一個簇中,即爲每個點找距其最近的質心
  • 然後其分配給該質心所對應的簇
  • 然後每個簇的質心更新爲該簇所有點的平均值

下面具體來看:

1.根據自己的數據,設K值,現假設K=2
在這裏插入圖片描述
2.K=2,所以隨機取兩個點作爲質心
在這裏插入圖片描述
3.根據那兩個質心進行距離計算並劃分簇
在這裏插入圖片描述
4.對已經分類了的兩個簇進行質心的更新,再重新遍歷一遍計算距離
在這裏插入圖片描述
5.更新到再更新他的簇也不再變之後就說明已經分好了

在這裏插入圖片描述

優缺點

優點:簡單快速,適合常規數據集

缺點:

  1. K值難確定,不好調參
  2. 複雜度與樣本成線性關係,在大規模數據集上收斂較慢。
  3. 可能收斂到局部最小值
  4. 對一些環狀簇或者奇形怪狀的簇難以分離

適用數據類型:數值型數據。

在這裏插入圖片描述

K-均值聚類的一般流程
(1) 收集數據:使用任意方法。

(2) 準備數據:需要數值型數據來計算距離,也可以將標稱型數據映射爲二值型數據再用於距離計算。

(3) 分析數據:使用任意方法。

(4) 訓練算法:不適用於無監督學習,即無監督學習沒有訓練過程。

(5) 測試算法:應用聚類算法、觀察結果。可以使用量化的誤差指標如誤差平方和(後面 會介紹)來評價算法的結果。

(6) 使用算法:可以用於所希望的任何應用。通常情況下,簇質心可以代表整個簇的數據 來做出決策。

DBSCAN聚類( Density-Based Spatial Clustering of Applications with Noise)

DBSCAN 的主要優點是它不需要用戶先驗地設置簇K的個數,可以劃分具有複雜形狀的簇,還可以找出不屬於任何簇的點。DBSCAN 比凝聚聚類和 k 均值稍慢,但仍可以擴展到相對較大的數據集。

原理思想

識別特徵空間的“擁擠”區域中的點,在這些區域中許多數據點靠近在一起。這些區域被稱爲特徵空間中的密集區域

思想是,簇形成數據的密集區域,並由相對較空的區域分隔開。

基本概念

核心樣本:在密集區域內的點被稱爲核心樣本(或核心對象,核心點)。

ϵ-鄰域的距離閾值:設定的半徑r

直接密度可達:若某點b在點q的 r 鄰域內,且a是核心點則p-q直接密度可達。
b
密度可達:若有一個點的序列q0、q1、…qk,對任意qi-qi-1是直接密度可達的,則稱從q0到qk密度可達,這實際上是直接密度可達的“傳播”。
此圖a,b密度可達
在這裏插入圖片描述
密度相連:若從某核心點p出發,點q和點k都是密度可達的,則稱點q和點k是密度相連的。

邊界點:屬於某一個類的非核心點,不能發展下線了

噪聲點:不屬於任何一個類簇的點,從任何一個核心點出發都是密度不可達的

如圖。A是核心對象,A1,A2,A3在A這個圈內,即A123是A的下線,A123又會以自己爲核心點畫圈。往下類似,直到遇到B,C這種下線,他們再畫圈,其圈內沒有其他下線了,就叫做邊界點。N是所有的核心點畫的圈都圈不到的一個點,所以N是離羣點,也叫噪聲點。

工作流程

在這裏插入圖片描述
參數選擇:
半徑ϵ:可以根據K距離來設定:找突變點

K距離:給定數據集P={p(i); i=0,1,…n},計算點P(i)到集合D的子集S中所有點 之間的距離,距離按照從小到大的順序排序,d(k)就被稱爲k-距離。

點的個數MinPts: k-距離中k的值,一般取的小一些,多次嘗試

優缺點

優點:

  • 不需要指定簇個數
  • 可以發現任意形狀的簇
  • 擅長找到離羣點(檢測任務) 兩個參數就夠了

缺點:

  • 高維數據有些困難(可以做降維)
  • 參數難以選擇(參數對結果的影響非常大)
  • Sklearn中效率很慢(數據削減策略)

很牛的一個聚類可視化網站可以自己玩玩
https://www.naftaliharris.com/blog/visualizing-dbscan- clustering/

在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章