基於K Means聚類 高斯聚類對亞洲球隊進行聚類

2022-08-11 08:51:10 字數 1701 閱讀 4598

需求:對18只亞洲球隊進行聚類

資料集:包含四個字段(國家,2019國際排名,2018世界盃排名,2015亞洲盃排名)

完整**:

#

coding: utf-8

import

pandas as pd

#資料預處理

from sklearn import

preprocessing

#引入kmeans聚類演算法

from sklearn.cluster import

kmeans

#資料載入

data = pd.read_csv('

team_cluster_data.csv

', encoding='

gbk')#

抽取data中的三列資料進行後面的聚類分析

train_x = data[["

2019國際排名

", "

2018世界盃排名

", "

2015亞洲盃排名"]]

#建立kmeans物件,並且規定聚成3類

kmeans = kmeans(n_clusters=3)

#建立物件,規範化到[0,1]空間(建立了一把尺子)

min_max_scaler =preprocessing.minmaxscaler()

#fit學習這個資料(得到一些值),transform應用這個尺子,最後得到乙個變化後的結果(在0,1範圍內)

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(, axis=1, inplace=true)

print

(result)

#將結果匯出到csv檔案中

#result.to_csv("team_cluster_result.csv")

#高斯混合聚類(無限逼近曲線)

from sklearn.mixture import

gaussianmixture

#n_components聚類的數量

model = gaussianmixture(n_components=3)

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)

#inplace=true 原地修改,節省記憶體

result.rename(, axis=1, inplace=true)

print(result)

願有人陪你顛沛流離,如果沒有,願你成為自己的太陽

k means聚類,密度聚類,層次聚類優缺點

k means 優點 1,簡單,易於理解和實現 2,時間複雜度低 缺點 1,需要對均值給出定義,2,需要指定要聚類的數目 3,一些過大的異常值會帶來很大影響 4,演算法對初始選值敏感 5,適合球形聚類 層次聚類 優點 1,距離和規則的相似度容易定義,限制少 2,不需要預先制定聚類數 3,可以發現類的...

聚類練習3 k means 聚類

資料任然選擇聚類分析2中資料 程式用python程式設計。準備 將maltab中將m資料檔案轉化為txt文字檔案。程式 匯入讀取資料 importnumpyasnp fi open d alsun data.txt lin fi.readlines fi.close data np.ones 100...

K Means聚類演算法

k means聚類演算法 intergret kmeans演算法的基本思想是初始隨機給定k個簇中心,按照最鄰近原則把待分類樣本點分到各個簇。然後按平均法重新計算各個簇的質心,從而確定新的簇心。一直迭代,直到簇心的移動距離小於某個給定的值。k means聚類演算法主要分為三個步驟 1 第一步是為待聚類...