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為設定你想分成幾群
訓練model
查看中心點
預測結果
查看在驗證集上的正確率
繳交結果
IT_submission 為DNN的訓練結果(前面文章有寫)
SVM_submission 為SVM的訓練結果(前面文章有寫)
KNN_submission 為KNN的訓練結果 (前面文章有寫)
Kmeans_submission 為Kmeans的訓練結果(就是本文章的結果)
此全部都用相同的資料前處理
附上程式碼
https://colab.research.google.com/drive/1_awrM3Un_pWnDUvXE2iYX35RS8ujHLqQ?usp=sharing