sklearnで分類学習モデルを構築する際にテストデータが必要になる。手で作成したりあらかじめ用意されたデータを使うこともできるが、make_blobsを使ってランダムデータを作成できる。
sklearn.datasets.make_blobs — scikit-learn 0.21.3 …
sklearn.datasets.make_blobs(n_samples=100, n_features=2, centers=None, cluster_std=1.0, center_box=(-10.0, 10.0), shuffle=True, random_state=None)
n_samplesは生成するデータの個数である。これはトータルの個数になる。例えばクラスタを2つ作る場合に、n_samples=100とするとそれぞれのクラスタは50ずつとなる。
centerは生成するクラスタの数である。3つのクラスタが必要であればcenters=3とする。
custer_stdは生成するクラスタの散らばりである。0であればクラスタはほぼ一か所にデータが集まる。大きくなるほど分散が大きくなり、クラスタの分類が難しくなる。
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.datasets.samples_generator import make_blobs
centers_l = [0.01, 0.1, 0.5, 1, 10, 1000]
fig, ax = plt.subplots(6, figsize=(10,20))
for i in range(len(centers_l)):
X, y = make_blobs(n_samples=150, centers=3,random_state=0, cluster_std=centers_l[i])
ax[i].scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='autumn');
plt.show()
