make_blobs會根據用戶指定的特征數量、中心點數量、范圍等來生成幾類數據,這些數據可用於測試聚類算法的效果。
make_blobs(n_samples=100, n_features=2,centers=3, cluster_std=1.0, center_box=(-10.0, 10.0), shuffle=True, random_state=None)
n_samples是待生成的樣本數量,n_features是每個樣本的特征數,centers是簇數量,也可以直接指定每個簇的中心點centers=[[-1,1],[1,2],[3,3]],cluster_std是每個簇的方差,賦給cluter_std一個參數代表所有簇方差都一樣,也可制定各個簇的方差cluster_std=[10,6,25],shuffle數據洗牌,默認不用設置,random_state是隨機種子,默認隨機種子,也可以自己指定。
import matplotlib.pyplot as plt from sklearn.datasets.samples_generator import make_blobs # data為樣本特征,target為樣本簇類別, 共1000個樣本,每個樣本2個特征, 共4個簇, 簇中心在[-2,-2],[1,1],[3,3],[5,5], 簇方差分別為[0.4,0.2,0.1,0.3]
data, target = make_blobs(n_samples=1000, n_features=2, centers=[[-2,-2],[1,1],[3,3],[5,5]], cluster_std=[0.4,0.2,0.1,0.3], random_state=7) #畫圖 c=target代表不同簇不同顏色,marker='o'是用來指定數據的顯示形狀
plt.scatter(data[:, 0], data[: ,1], c=target, marker='o') plt.show()