1. 程式人生 > >K-means對中國足球進行定位

K-means對中國足球進行定位

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)

這裡寫圖片描述