iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0
AI/ ML & Data

ML/DL-新手選手村系列 第 20

day20_常見ML分群演算法:K-means、Hierarchy Clustering、DBSCAN

  • 分享至 

  • xImage
  •  
  • 工商服務一下:

這系列結束後,我將繼續挑戰IT鐵人30日:
佛心分享 : it 考照之路
主題:從摸索7個月到下定決心訂下3週後考試:自學取得PMP 3AT 執照

    • 終於到ML unsupervised learning的最後一種演算法:分群,同學是不是應該為自己每天堅持20天不間斷學習拍拍手。加油!堅持不間斷地學習,一年之後你將比前一年強37倍。(取自原子習慣)
  • 今天我們要學習的是:

  • 分群演算法原理

  • 分群演算法步驟

  • 分群演算法程式碼

  • 分群演算法原理:

  • 原理很直覺,就是抽象的說就是「相似」,在科學上所說的兩個物件相似,指得就是「距離」,物件兩兩相距最近的距離,尺度為毆式距離,在day12有談過。


  • k-means 步驟:

  • 從樣本點隨機挑選k個質心做為初始集群中心。

  • 將每個樣本分配到離它最近的質心。

  • 再把質心移到「被分給它的樣本點」的中心。

  • 重複以上2個步驟,直到集群分配不再變更。

  • 所謂的「質心」就是隨機從樣本點挑出來要當成「集群中心」的點。
    「集群分配不再變更」可以說是「質心」不再移動,或是樣本點全部分配完畢。

  • k-means 程式碼:

from 
km = KMeans(n_cluster=3,
              init='random',
              n_init=10,
              max_iter=300,
              random_state=0)
  • n_cluser = 3,表示分三群

  • n_init = 10,init = 'random',初始隨機選取10個質心

  • 階層式分群 Hierarchy Clustering步驟:


計算所有樣本的距離矩陣
將每個數據點作為一個單一集群
兩兩合併兩個距離最近的集群對
更新距離矩陣
重複以上兩個步驟,直到合併成一個單一集群

  • 距離矩陣:這裡的距離矩陣,是我們之前所說過的歐式距離,計算每一樣本,點對點的距離矩陣。


  • 階層式分群 Hierarchy Clustering程式碼:

from scipy.cluster.hierarchy import linkage

linkage(X_train, method='ward',metric='euclidean')
  • method = 'ward',方法使用ward分群法。

  • metric = 'euclidean',度量選擇歐式距離。

  • Density-Based Spatial Clustering of Applications with Noses,DBSCAN

  • 首先介紹三個名詞:

  • 核心點core point:在指定圓心半徑 r內的中心點。

  • 邊界點border point : 在指定圓心半徑 r內,位於小於或等於半徑r距離的點。

  • 局外點noise point:在指定圓心半徑r之外的點。

  • DBSCAN步驟:

    • 1.決定半徑 r與最少點數k(門檻值)

    • 2.任意選取一個樣本當作中心點,以步驟1設定好的半徑畫圓

    • 若圓內樣本數大於k,則此一樣本為核心點

    • 若圓內樣本數小於k,但此點在半徑內稱邊界點

    • 若圓內樣本數小於k,但此點在半徑外稱局外點

    • 3.對每一樣本重複2步驟,直到所有樣本都當過核心點為止

    • 4.分群:將所有核心點劃分一群,並納入邊界點,其它局外點為另一群。

  • DBSCAN程式碼:

from sklearn.cluster import DBSCAN

DBSCAN(eps=0.5, min_samples = 5, metric = 'euclidean'

  • eps = 0.5 ,半徑0.5

  • min_samples = 5 ,門檻值k

  • 堅持學習了20日,有沒有想要躍躍欲試想挑戰ML,到目前為止我們所談的code都是最基礎的,明天我們將會談ML競賽kaggle,帶您學習幾個有名的datasets,讓您實際深入體驗真正的機器學習實戰。敬請期待。


上一篇
day19_常見的ML降維法:主成份分析(Principal Component Analysis,PCA)
下一篇
day21_ML實戰演練:Kaggle
系列文
ML/DL-新手選手村22
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言