天天看點

Python資料模組化--K-means聚類建立資料建構K均值模型

K-means聚類

  • 建立資料
  • 建構K均值模型

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()
# 繪制圖表
           

*

Python資料模組化--K-means聚類建立資料建構K均值模型

建構K均值模型

from sklearn.cluster import KMeans
# 導入子產品

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資料模組化--K-means聚類建立資料建構K均值模型

Python 資料模組化:

- Python資料模組化–回歸

- Python資料模組化–分類

- Python資料模組化–主成分分析

- Python資料模組化–K-means聚類

- Python資料模組化–蒙特卡洛模拟