kmeanssklearn实例_sklearn实践(一):kmeans聚类
sklearn實(shí)踐(一):kmeans聚類
實(shí)踐往往比理論要經(jīng)歷更多的挫折。
一、數(shù)據(jù)處理
官方給的案例里用的都是sklearn自帶的數(shù)據(jù)集,只要import之后便萬事大吉,但實(shí)際中我們采用的數(shù)據(jù)往往沒有那么規(guī)整,也不是可以一下就fit到模型里去的。經(jīng)過這次經(jīng)歷,打算整理一下大致思路,關(guān)于更高級、深入的數(shù)據(jù)處理,這篇文章不會涉及。
官方案例如下:
>>> from sklearn.cluster import KMeans
>>> import numpy as np
>>> X = np.array([[1, 2], [1, 4], [1, 0],
... [10, 2], [10, 4], [10, 0]])
#其中,X即fit的參數(shù)可推斷,應(yīng)當(dāng)是這種np.array
>>> kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
>>> kmeans.labels_
array([1, 1, 1, 0, 0, 0], dtype=int32)
#labels_表示樣本集中所有樣本所屬類別(x=1->No.1;x=2->No.1;x=3->No.1;x=4->No.0)
>>> kmeans.predict([[0, 0], [12, 3]])
array([1, 0], dtype=int32)
#以二維數(shù)組格式[x,y]輸入predict,可輸出判斷類別結(jié)果
>>> kmeans.cluster_centers_
array([[10., 2.],
[ 1., 2.]])
#cluster_center是兩個cluster的中心點(diǎn)
我的數(shù)據(jù):
from sklearn.cluster import KMeans
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# 初始化數(shù)據(jù)集
dat = pd.read_csv("C:\\Users\\Breeze\\Desktop\\matlab\\data.csv")
# 指定簇的個數(shù),即分成幾類
print(data)
將dataframe轉(zhuǎn)置
data = dat.T
print(data)
去掉id這一列:
data = data.drop(['id'])
將每一列依次讀取出來,每一列都用列表形式存儲,依次放到另一個空列表中:
x = []
for i in range(60):
x.append(data[i].values.tolist())
X = np.array(x)
由此得到合適的數(shù)據(jù)集X
二、fit()開始聚類
fit(X):
km = KMeans(n_clusters=3).fit(X)
# 標(biāo)簽結(jié)果
rs_labels = km.labels_
# 每個類別的中心點(diǎn)
rs_center_ids = km.cluster_centers_
# 描繪各個點(diǎn)
plt.scatter(X[:, 0], X[:, 1], c=rs_labels, alpha=0.5)
# 描繪質(zhì)心
# plt.scatter(rs_center_ids[:, 0], rs_center_ids[:, 1], c='red')
plt.show()
總結(jié)
以上是生活随笔為你收集整理的kmeanssklearn实例_sklearn实践(一):kmeans聚类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 部分用户反馈升级到 iOS 16.3 之
- 下一篇: multinorm r语言_与心理学数据