iT邦幫忙

2021 iThome 鐵人賽

DAY 29
0
AI & Data

30Day 從一介凡人羽化成資料科學初學者系列 第 29

Day29-機器學習(3) Kmeans

  • 分享至 

  • xImage
  •  

Kmeans簡單說明
為一種非監督學習的方法,其原理為:
(1)依據你想分成幾個群,就先找出幾個資料點視為群組中心點
(2)再將其他資料根據與其距離最近的群組中心點歸為同一類
(3)之後依據分類好的資料重新計算群組中心點
步驟(3)重新計算完群中心後,就會回到步驟(2)跟(3)
一直到群組中心不在改變或達到最大迭代次數

用程式碼來比喻就好像是

步驟(1)
while True:
  步驟(2)
  步驟(3)
  if(群組中心不在改變或達到最大迭代次數):
    break

使用方法
這邊我使用的資料集為Titanic
前處理我直接跟Day24、25、26的一樣,如果想了解可以去看前面的文章

import KMeans

from sklearn.cluster import KMeans

自己先設一個變數,此變數為你的model名稱,並將KMeans()指派給它
後面參數n_clusters為設定你想分成幾群
https://ithelp.ithome.com.tw/upload/images/20210909/20140416qvMD6KFMxp.png

訓練model
https://ithelp.ithome.com.tw/upload/images/20210909/20140416hlEcVctvej.png

查看中心點
https://ithelp.ithome.com.tw/upload/images/20210909/20140416dwAoamLwWw.png

預測結果
https://ithelp.ithome.com.tw/upload/images/20210909/20140416WautMhsyzz.png

查看在驗證集上的正確率
https://ithelp.ithome.com.tw/upload/images/20210909/20140416V52ToccnIi.png

繳交結果
IT_submission 為DNN的訓練結果(前面文章有寫)
SVM_submission 為SVM的訓練結果(前面文章有寫)
KNN_submission 為KNN的訓練結果 (前面文章有寫)
Kmeans_submission 為Kmeans的訓練結果(就是本文章的結果)
此全部都用相同的資料前處理
https://ithelp.ithome.com.tw/upload/images/20210909/20140416ms4wJFXlla.png

附上程式碼
https://colab.research.google.com/drive/1_awrM3Un_pWnDUvXE2iYX35RS8ujHLqQ?usp=sharing


上一篇
Day28-機器學習(2) KNN
下一篇
Day30-30天的心得與作者的心聲
系列文
30Day 從一介凡人羽化成資料科學初學者30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言