# -*- coding: utf-8 -*-
"""created on tue mar 26 09:11:21 2019
@author: hadron
"""from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
if __name__ ==
'__main__'
: n =
400 centers =
4'''
make_blobs函式是為聚類產生乙個資料集和相應的標籤
n_samples:表示資料樣本點個數,預設值100
n_features:表示資料的維度,預設值是2
centers:產生資料的中心點,預設值3
cluster_std:資料集的標準差,浮點數或者浮點數序列,預設值1.0
center_box:中心確定之後的資料邊界,預設值(-10.0, 10.0)
shuffle :洗亂,預設值是true
random_state:官網解釋是隨機生成器的種子
返回值說明:
(1) x : array of shape [n_samples, n_features],the generated samples.生成的樣本資料集。
(1) y : array of shape [n_samples],the integer labels for cluster membership of each sample.樣本資料集的標籤。
'''# 生成400個2維樣本點集合,中心點4個
data, y = make_blobs(n_samples=n, n_features=
2, centers=centers)
''' matplotlib.pyplot.scatter(x, y, s=none, c=none, marker=none, cmap=none, norm=none, vmin=none, vmax=none, alpha=none, linewidths=none, verts=none, edgecolors=none, *, data=none, **kwargs)
引數說明:
(1)x,y:表示的是大小為(n,)的陣列,也就是我們即將繪製散點圖的資料點
(2)c:表示的是顏色,也是乙個可選項。預設是藍色'b',表示的是標記的顏色,或者可以是乙個表示顏色的字元,或者是乙個長度為n的表示顏色的序列等等
'''#利用pyplot模組的scatter函式繪製散點圖
plt.scatter(data[:,
0], data[:,
1], c=y)
plt.show(
)
執行結果
k means演算法不足
a.k 不確定 對於初始條件和聚類的個數 k 並沒有乙個標準的方法來給定。初始條件不同會對結果產生比較大的影響,因為有時演算法會跳入區域性最優。所以解決方法之一,就是多次執行演算法,隨機分割,比較結果之間的差異。b.區域性最優 如果要達到全域性最優,需要用到其他一些技術,比如模擬退火或者遺傳演算法等...
Kmeans演算法實現
include opencv2 highgui highgui.hpp include opencv2 core core.hpp include using namespace cv using namespace std static void help int main int argc ch...
K means演算法上
在資料探勘中,k means演算法是一種cluster analysis的演算法,其主要是來計算資料聚集的演算法,主要通過不斷地取離種子點最近均值的演算法。問題k means演算法主要解決的問題如下圖所示。我們可以看到,在圖的左邊有一些點,我們用肉眼可以看出來有四個點群,但是我們怎麼通過電腦程式找出...