日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

kmeanssklearn实例_sklearn实践(一):kmeans聚类

發布時間:2023/12/15 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kmeanssklearn实例_sklearn实践(一):kmeans聚类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

sklearn實踐(一):kmeans聚類

實踐往往比理論要經歷更多的挫折。

一、數據處理

官方給的案例里用的都是sklearn自帶的數據集,只要import之后便萬事大吉,但實際中我們采用的數據往往沒有那么規整,也不是可以一下就fit到模型里去的。經過這次經歷,打算整理一下大致思路,關于更高級、深入的數據處理,這篇文章不會涉及。

官方案例如下:

>>> 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的參數可推斷,應當是這種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)

#以二維數組格式[x,y]輸入predict,可輸出判斷類別結果

>>> kmeans.cluster_centers_

array([[10., 2.],

[ 1., 2.]])

#cluster_center是兩個cluster的中心點

我的數據:

from sklearn.cluster import KMeans

import numpy as np

import matplotlib.pyplot as plt

import pandas as pd

# 初始化數據集

dat = pd.read_csv("C:\\Users\\Breeze\\Desktop\\matlab\\data.csv")

# 指定簇的個數,即分成幾類

print(data)

將dataframe轉置

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)

由此得到合適的數據集X

二、fit()開始聚類

fit(X):

km = KMeans(n_clusters=3).fit(X)

# 標簽結果

rs_labels = km.labels_

# 每個類別的中心點

rs_center_ids = km.cluster_centers_

# 描繪各個點

plt.scatter(X[:, 0], X[:, 1], c=rs_labels, alpha=0.5)

# 描繪質心

# plt.scatter(rs_center_ids[:, 0], rs_center_ids[:, 1], c='red')

plt.show()

總結

以上是生活随笔為你收集整理的kmeanssklearn实例_sklearn实践(一):kmeans聚类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。