[scikit-learn] 6. make_s_curveによるS字状データの生成

matplotlib

はじめに

scikit-learnライブラリのdatasets.make_s_curve関数は、S字状に分布した3次元データを生成するための便利なツールです。このデータセットは、特に次元削減アルゴリズムの性能評価やデータ可視化の練習に適しています。

解説

モジュールのインポートなど

バージョン

n_samples

生成するデータポイントの数を指定します。値が大きいほど滑らかなS字カーブが形成されますが、計算コストが増加します。

noise

データに追加するガウスノイズの標準偏差を制御します。値が大きいほどS字カーブの形状が不明瞭になります。

  • noise=0.5以上: 高いノイズでS字の形状が分かりにくくなる
  • noise=0: 完全なS字カーブ(ノイズなし)
  • noise=0.1: 軽度のノイズ(推奨値)

random_state

乱数生成のシード値です。再現性のある結果を得るために設定します。

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

まとめ

make_s_curve関数は、次元削減アルゴリズムのテストや非線形データの挙動を理解するための理想的なツールです。パラメータを調整することで、様々な複雑さのデータセットを生成でき、機械学習アルゴリズムの性能評価に役立ちます。

参考

make_s_curve
Gallery examples: Comparison of Manifold Learning methods t-SNE: The effect of various perplexity values on the shape

コメント