聚类之亚洲足球排名数据集(kmeans、GMM)

一、代码

在这里插入代码片# coding: utf-8
from sklearn.cluster import KMeans
from sklearn import preprocessing
import pandas as pd
import numpy as np

# 数据加载
data = pd.read_csv('team_cluster_data.csv', encoding='gbk')
train_x = data[["2019国际排名","2018世界杯排名","2015亚洲杯排名"]]
kmeans = KMeans(n_clusters=3)

# 规范化到 [0,1] 空间
min_max_scaler = preprocessing.MinMaxScaler()
train_x = min_max_scaler.fit_transform(train_x)
#print(train_x)

# kmeans 算法
kmeans.fit(train_x)
predict_y = kmeans.predict(train_x)

# 合并聚类结果,插入到原数据中
result = pd.concat((data,pd.DataFrame(predict_y)),axis=1)
result.rename({0:u'聚类结果'}, axis=1, inplace=True)
print(result)

from sklearn.mixture import GaussianMixture
model = GaussianMixture(n_components=3, covariance_type="full")

model.fit(train_x)
#result = model.predict(train_x)
predict_y = model.predict(train_x)

# 合并聚类结果,插入到原数据中
result = pd.concat((data,pd.DataFrame(predict_y)), axis=1)
result.rename({0:u'聚类结果'}, axis=1, inplace=True)
print(result)

二、结果

kmeans:

        国家  2019国际排名  2018世界杯排名  2015亚洲杯排名  聚类结果
0       中国        73         40          7     2
1       日本        60         15          5     0
2       韩国        61         19          2     0
3       伊朗        34         18          6     0
4       沙特        67         26         10     0
5      伊拉克        91         40          4     2
6      卡塔尔       101         40         13     1
7      阿联酋        81         40          6     2
8   乌兹别克斯坦        88         40          8     2
9       泰国       122         40         17     1
10      越南       102         50         17     1
11      阿曼        87         50         12     1
12      朝鲜       110         50         14     1
13      印尼       164         50         17     1
14      澳洲        40         30          1     0
15     叙利亚        76         40         17     1
16      约旦       118         50          9     2
17     科威特       160         50         15     1

GMM:

        国家  2019国际排名  2018世界杯排名  2015亚洲杯排名  聚类结果
0       中国        73         40          7     1
1       日本        60         15          5     2
2       韩国        61         19          2     2
3       伊朗        34         18          6     2
4       沙特        67         26         10     2
5      伊拉克        91         40          4     1
6      卡塔尔       101         40         13     0
7      阿联酋        81         40          6     1
8   乌兹别克斯坦        88         40          8     1
9       泰国       122         40         17     0
10      越南       102         50         17     0
11      阿曼        87         50         12     0
12      朝鲜       110         50         14     0
13      印尼       164         50         17     0
14      澳洲        40         30          1     1
15     叙利亚        76         40         17     0
16      约旦       118         50          9     0
17     科威特       160         50         15     0
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值