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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

kmeans python_k-means python实践

發布時間:2024/9/27 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kmeans python_k-means python实践 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#coding=utf-8

import numpy as np

import matplotlib.pyplot as plt

from sklearn.cluster import KMeans

import sklearn.datasets as ds

import matplotlib

matplotlib.rcParams['font.sans-serif'] = [u'SimHei']

matplotlib.rcParams['axes.unicode_minus'] = False

#生成測試數據

#生成維度為2,個數為200個的樣本點。其中有4個聚類中心。每一個簇的方差分別為1,2,2,1

data,y = ds.make_blobs(200,n_features=2,centers=4, cluster_std=[1,2,2,1], random_state=3)

#繪制樣本點

colors=['red','yellow','blue','black']

plt.title(u"原始數據")

plt.subplot(211)

for i in range(4):

plt.scatter(data[y==i][:,0],data[y==i][:,1],color=colors[i])

#開始聚類

model = KMeans(n_clusters=4,init="k-means++")

model.fit(data,y)

#pre_y = model.fit(data,y)

#分類結果

pre_y = model.labels_

#對比分類效果

plt.title(u"聚類數據")

plt.subplot(212)

for i in range(4):

plt.scatter(data[pre_y==i][:,0],data[pre_y==i][:,1],color=colors[i])

plt.show()

#假設我們不知道有幾個簇,可以通過下面的方法來解決

a = []

for i in range(1,10):

model = KMeans(n_clusters=i,init="k-means++")

model.fit(data)

#model.inertia_ 表示每一個樣本點到自己的聚類中心的距離的平方和的和。越小表示聚類效果越好

a.append(model.inertia_)

a = np.array(a)

plt.plot(range(1,10),a/100)

plt.show()

#根據最后的圖形可知最好的簇中心數為4

總結

以上是生活随笔為你收集整理的kmeans python_k-means python实践的全部內容,希望文章能夠幫你解決所遇到的問題。

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