K-means對中國足球進行定位
阿新 • • 發佈:2019-02-19
1.匯入模組
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pyplot as plt
%matplotlib inline
#k-means學習模型
from sklearn.cluster import KMeans
#3D影象模組
from mpl_toolkits.mplot3d import Axes3D
2.獲取訓練資料
#從本地載入資料
samples = pd.read_csv('../day12/K-means/data/AsiaZoo.txt' )
samples.columns = ["國家","2006世界盃","2010世界盃","2007亞洲盃"]
X_train = samples[["2006世界盃","2010世界盃","2007亞洲盃"]]
X_train
資料如下:
3.建立K-means模型
kmeans = KMeans(n_clusters=3)
4.訓練資料
kmeans.fit(X_train)
5.對資料進行聚類判斷
y_pre = kmeans.predict(X_train)
6.根據聚類結果對原資料進行分類
#合併分類結果與原資料
temp = pd.concat((samples,DataFrame(y_pre)),axis=1 )
temp.rename({0:'target'},axis=1,inplace=True)
temp
7.繪圖展示聚類結果
plt.figure(figsize=(8,6))
ax = plt.subplot(projection = '3d')
ax.set_xlabel('2006-world-cup',color = 'orange',fontsize = 16)
ax.set_ylabel('2010-world-cup',color = 'orange',fontsize = 16)
ax.set_zlabel('2007-asia-cup',color = 'orange',fontsize = 16 )
# 繪製3d空間的點
ax.scatter3D(samples['2006世界盃'],samples['2010世界盃'],samples['2007亞洲盃'],c = y_pre,s=90,alpha = 1)