k-means聚類的python實現方法
介紹:最常用的機器學習聚類演算法,且為典型的基於距離的聚類演算法
k均值: 基於原型的、劃分的距離技術,它試圖發現使用者指定個數(k)的簇,以歐式距離作為相似度測度
from sklearn.datasets.samples_generator import make_blobs
# make_blobs聚類資料生成器
x,y_true = make_blobs(n_samples =
300,
# 生成300條資料
centers =4,
# 四類資料
cluster_std =
0.5,
# 方差一致
random_state =0)
print
(x[:5]
)print
(y_true[:5
])# n_samples → 待生成的樣本的總數。
# n_features → 每個樣本的特徵數。
# centers → 類別數
# cluster_std → 每個類別的方差,如多類資料不同方差,可設定為[1.0,3.0](這裡針對2類資料)方差越小越集中
# random_state → 隨機數種子
# x → 生成資料值, y → 生成資料對應的類別標籤
plt.scatter(x[:,
0],x[:,1
],s =
10,alpha =
0.8)
plt.grid(
)# 繪製圖表
# 匯入模組
kmeans = kmeans(n_clusters =4)
# 這裡為4簇
kmeans.fit(x)
y_kmeans = kmeans.predict(x)
centroids = kmeans.cluster_centers_
# 構建模型,並**出樣本的類別y_kmeans
# kmeans.cluster_centers_:得到不同簇的中心點
plt.scatter(x[:,
0],x[:,1
],c = y_kmeans, cmap =
'dark2'
, s=
50,alpha =
0.5,marker=
'x')
plt.scatter(centroids[:,
0],centroids[:,
1],c =[0
,1,2
,3], cmap =
'dark2'
,s=70
,marker=
'o')
plt.title(
'k-means 300 points\n'
)plt.xlabel(
'value1'
)plt.ylabel(
'value2'
)plt.grid(
)# 繪製圖表
python 資料建模:
- python資料建模–回歸
- python資料建模–分類
- python資料建模–主成分分析
- python資料建模–k-means聚類
- python資料建模–蒙特卡洛模擬
kmean聚類python實現
import pandas as pd import numpy as np import xlrd 匯入資料 df2 pd.read excel test2.xlsx data np.array df2 去掉前兩列 data data 2 分為k類 k 3 臨近均值e e 0.00001 獲得行數...
Kmean聚類演算法原理python實現
kmean聚類演算法是基於距離對物件進行分類的演算法,該演算法實現步驟如下 1 確定初始資料簇質心,質心的數量與需要分的類的數量一致 2 將資料集中的每乙個物件與不同質心計算距離,並將其分類到最近的質心簇中 3 更新資料簇質心,迭代計算,直到資料簇質心不再變化或者分類精度達到要求時,停止演算法。如下...
用python建模 用Python建模線性系統
我知道這有點老了,但一次調查就引出了這個問題。當我找不到合適的模組時,我就把它組裝起來了。不算多,但如果有人發現自己在這裡,這是個好的開始。import matplotlib.pylab as plt import numpy as np import scipy.signal def bode g...