1. 程式人生 > >機器學習演算法之二:5分鐘上手K-Means

機器學習演算法之二:5分鐘上手K-Means

1.案例:承襲KNN,這個資料依舊是用打鬥次數和接吻次數來界定電影型別,接吻多的是Romance型別的,而打鬥多的是動作電影。

2.問題:現在有一部名字未知的電影,打鬥次數為18次,接吻次數為90次的電影,它到底屬於哪種型別的電影呢?

3.Sampe code:

# -*- coding: utf-8 -*-
import numpy as np
from sklearn.cluster import KMeans
from sklearn.externals import joblib

#data對應著打鬥次數和接吻次數
data = np.array([[3,104],[2,100],[1,81],[101,10],[99,5],[98,2]])

#引數說明:n_clusters代表想分幾群,n_init代表設定選擇質心種子次數,預設為10次,返回質心最好的一次結果。
#補充說明:因使用隨機的初始值,因此每次執行的分群代表號會不一樣。
clf = KMeans(n_clusters=2, n_init=10)
clf.fit(data)
print clf.labels_

#進行預測測試
test_data=np.array([[3,103], [102,5]])
print clf.fit_predict(test_data)

#儲存模型
joblib.dump(clf, "2.kmeans_model.m")

#匯入已儲存的模型進行預測
clf1 = joblib.load("2.kmeans_model.m")
print clf1.fit_predict(test_data)

4.結果:

[0 0 0 1 1 1]
[0 1]
[1 0]