数据分析实战之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替换下。

版权声明:本文为hahaha66888原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hahaha66888/article/details/88017956