數據分析實戰之K-Means(給球隊做聚類)

數據來源是簡單整理的2015-2019亞洲球隊的排名,如下圖所示。通過K-Means做簡單聚類分析。

1、數據加載

import numpy as np
import pandas as pd


data = pd.read_csv(r'C:\Users\hzjy\Desktop\data.csv',encoding='gbk')

train_x = data[['2019年國際排名','2018世界盃','2015亞洲盃']]

df = pd.DataFrame(train_x)

2、聚類一般要做數據標準化處理,採用Min-max 規範化

from sklearn import preprocessing
min_max_scaler = preprocessing.MinMaxScaler()
train_x = min_max_scaler.fit_transform(train_x)

3、K-Means聚類

from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=5)
kmeans.fit(train_x)
predict_y = kmeans.predict(train_x)

4、合併聚類結果 插入到原數據中

result = pd.concat((data,pd.DataFrame(predict_y)),axis = 1)
result.rename({0:'聚類'},axis = 1,inplace = True)
result

這裏解釋下2個問題:

1)之所以用pd.DataFrame(predict_y)  是因爲pd.concat() 是根據軸作合併的,而predict_y是array數組類型,data是DataFrame類型,需要將predict_y的類型進行轉換

2)result.rename({0:'聚類'},axis = 1,inplace = True)  用  0:'聚類'  是因爲沒重名之前聚類結果這一列列名爲“0”,需要rename替換下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章