需求:對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)
(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 第一步是為待聚類...