2014年10月7日火曜日

scikits-learn データセットの読み込み:人工データその1

概要

このページをもとにする
http://scikit-learn.org/stable/datasets/index.html

機械学習で使える様々なデータを読み込んだり生成したりするためのAPI集。 

これ以降のサンプルコードは

import sklearn.datasets as d 

を実行した後を仮定。

 

人工データ

学習のテストに使えるような、人工的なデータを生成するメソッドたち。

 make_classification: nクラス分類問題生成

正規分布に従う複数のクラスから生成されるデータを合成する。
データには、様々なノイズを含ませることができる。 

生成するサンプル数は (n_samles) で、

各次元の特徴は

  • 各サンプルの特徴量の次元数 (n_features)
  • 特徴量のうち正解の正規分布から生成される特徴量の次元数 (n_informative)
  • 特徴量のうち n_informative の線形和で表せる特徴量の次元数 (n_redundant)
  • 特徴量のうち informative / redundant のどちらかの値をコピーしたもの (n_repeated) 

正解の分布の特徴は

  • 問題のクラス数 (n_classes)
  • クラス内のクラスタの数 (分布数) (n_cluster_per_class)
  • クラスから選ばれるサンプルの頻度 (weights)
  • クラスがランダムで入れ替えられる確率 (データのエラー率) (flip_y) 

make_multilabel_classification: 複数ラベル分類問題生成

サンプルごとにラベルが複数あるデータを合成する。

ラベルの種類は n_classes 個あって、
各サンプルは、平均で n_labels 個のラベルがついている。
各サンプルの特徴量は n_features 次元あって、
その総和は平均で length である。

length は、例えば特徴量を単語の頻度としたときに、平均的な一つのサンプル (=文章) の長さを意味する。  

allow_unlabeled を True にすると、どのラベルにも属さないサンプルの生成を許して生成する。

return_indicator は、クラスが 0-4 の5クラスあって、あるサンプルが 2, 4 のクラスに属している場合、
True にすると、  [0, 0, 1, 0, 1] というようにフラグで、
False にすると、[2, 4] というように値で表示される。
デフォルトは、現在は False だが、将来的に True になるらしい。

 

make_regression: 線形回帰問題生成 

1サンプルあたり n_features 次元のサンプルを n_samples 個生成する。
ただし、そのうち線形モデルを構成するのは n_informative 次元で、
残りは無関係。線形モデルには定数項 bias が足されている。 
回帰対象は n_target 次元のサンプルが生成される。 

データには標準偏差が noise のガウスノイズが加算されている。

0 件のコメント:

コメントを投稿