【Python/scikit-learn】make_blobsを使って機械学習用テストデータ作成する
make_blobs関数は、Scikit-learnのdatasetsモジュールに含まれており、クラスタリングや分類のテスト用に人工的なデータセットを簡単に作成するために使用されます。複数のクラスターを持つデータを作成するのに非常に便利です。
make_blobs関数の主なパラメータ
- n_samples: 生成するサンプル数を指定します。例えば、n_samples=100は100個のデータポイントを生成します。
- centers: 生成するクラスタの数、もしくはクラスタの中心位置を指定します。centers=3と指定すると、3つのクラスタを持つデータが作成されます。
- n_features: 特徴量の数を指定します。デフォルトは2です。
- cluster_std: 各クラスターの標準偏差を指定し、クラスターの広がり具合を調整します。
- random_state: 同じデータセットを再現するためのシード値を指定します。
簡単なプログラム例
以下のコードは、make_blobsを使って2つのクラスターを持つデータを生成し、そのデータを可視化する例です。
import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import make_blobs # make_blobsを使ってデータを生成 X, y = make_blobs(n_samples=100, centers=2, n_features=2, random_state=42) # データをプロット plt.scatter(X[:, 0], X[:, 1], c=y, cmap='viridis') plt.title("Generated Data using make_blobs") plt.xlabel("Feature 1") plt.ylabel("Feature 2") plt.show()
プログラムの説明
データの生成:
make_blobs(n_samples=100, centers=2, n_features=2, random_state=42)により、100個のサンプルが2つのクラスターに分かれた2次元データを生成しています。
Xには生成されたデータポイント(座標)が格納され、yには各データポイントが属するクラス(0または1)が含まれています。
データのプロット:
plt.scatterを使って、生成されたデータをプロットしています。c=yにより、クラスごとに異なる色で描画されています。
出力結果のイメージ
上記のコードを実行すると、2つのクラスターに分かれたデータが散布図として表示されます。クラスターの中心が明確に異なることが確認できます。
make_blobsはデータ生成が簡単で、機械学習アルゴリズムをテスト・学習する際にとても便利なツールです。
スポンサーリンク