2014年10月18日土曜日

2014 秋アニメ

今の一押し

  • 七つの大罪
  • 甘城ブリリアントパーク
  • PSYCHO-PASS
  • 四月は君の嘘
  • ソードアート・オンラインII

 

見てるリスト

  • 牙狼<GARO> - 炎の刻印 -
  • Fate/stay night
  • 失われた未来を求めて
  • クロスアンジュ 天使と炎の輪舞
  • ワールドフールニュース
  • ワールドトリガー
  • 七つの大罪
  • オオカミ少女と黒王子
  • グリザイアの果実
  • 繰繰れ!コックリさん
  • 神撃のバハムート
  • 魔弾の王と戦姫
  • 異能バトルは日常系の中で
  • 甘城ブリリアントパーク
  • 暁のヨナ
  • トリニティセブン
  • 棺姫のチャイカ
  • 寄生獣
  • デンキ街の本屋さん
  • 旦那が何を言っているかわからない件
  • PSYCHO-PASS
  • 四月は君の嘘
  • 俺、ツインテールになります
  • 曇天に笑う
  • ソードアート・オンラインII
  • アカメが斬る!
  • ガールフレンド(仮)

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 のガウスノイズが加算されている。

2014年10月3日金曜日

scikits-learn データセットの読み込み:トイデータ

概要

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

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

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

import sklearn.datasets as d 

を実行した後を仮定。

 

トイデータセット

ダウンロードせずに読み込めるとても小さいデータたち。
とりあえず試すには良いが、現実的なタスクにはならない。 

 

load_boston:  ボストンの家の価格データ。回帰用。

506 個のデータで、価格や部屋数など 13 次元の特徴量と価格がセットになっている。
データの抜けはなし。下記コードで読み込める。

x = d.load_boston()

x.data
(506, 13) サイズの array になっていて、特徴量ベクトル。

x.target
(506, ) サイズの array で、回帰する対象。 

x.feature_names 
文字列の配列で、13 次元の特徴量の名前が書かれている。

x. DESCR
データセットの特徴を記述した文章。
print x.DESCR
で読める。 

 

load_diabetes: 糖尿病データセット。回帰用。

442 個のデータで、 10 次元の特徴量と、1個のか回帰データがある。
特徴量は年齢、血圧などの生理学的な特徴で、
回帰対象は1年後の病気の進行度らしい。
http://www.math.unipd.it/~aiolli/corsi/1314/aa/user_guide-0.12-git.pdf

x = d.load_diabetes()

で読み込んで、

x.data で (442, 10) の特徴量ベクトルが手に入り、
x.target で (442, ) の回帰対象ベクトルが手に入る。 

 

 

load_iris: アヤメの特徴と種のデータ。分類用。

150個のデータで、3種類のアヤメ (setosa, versicolor, virginica) のラベルと
その特徴量 4 つが手に入る多クラス分類用データ。

x = d.load_iris()

で読み込める。

x.data 
(150, 4) サイズの array になっていて、特徴量ベクトル。

x.target
(150, ) サイズの array で、回帰する対象。0-2 の整数がはいる。 

x.feature_names 
文字列の配列で、13 次元の特徴量の名前が書かれている。

x.target_names
文字列の配列で、target の値ごとの花の名前が書かれている。 

x. DESCR
データセットの特徴を記述した文章。
print x.DESCR
で読める。 

 

load_digits: 手書き画像データ。分類用。

1797 個の、0-9 の数字を書いた 8x8 の画像セット。

x = d.load_digits()

で読み込める。

x.images
(1797, 8, 8) のデータ。 8x8 の画像が 1797 個ある。

x.data
(1797, 64) のデータ。8x8 の画像が 64次元の 1本のベクトルになったもの

x.target
(1797, ) のデータ。上記画像データの数字を表すラベル。 

x.target_names
データ。[0-9]

x.DESCR
データの説明文。 

 

load_linnerud: 重回帰用

20個の、3次元特徴量と3次元の回帰対象のセット。

x = d.load_linnerud()

で読み込める。

x.data
(20, 3) の特徴量データ

x.target
(20, 3) の回帰対象データ 

x.feature_names
x.data の各次元の名前

x.target_names
x.target の各次元の名前

x.DESCR
データの説明文 

 

参考文献

http://www.math.unipd.it/~aiolli/corsi/1314/aa/user_guide-0.12-git.pdf

 

2014年10月2日木曜日

scikit-learn 学習はじめます

機械学習の勉強をせなならんとずっと思っていたので、
これからしばらく、scikit-learn の user_guide を順番にまとめながら、
機械学習を学んでいきたいと思います。 

 

 

 おおきな括りとしては以下の7つなので、順番にやって行く予定。

1. Supervised learning:
教師あり学習。学習したいデータに何らかのラベルがあるものが対象。

2. Unsupervised learning:
教師なし学習。学習したいデータにラベルがないものが対象。

3. Model selection and evaluation:
上の二つのモデルのパラメータ・性能の評価など。

4. Dataset transformations
学習したいデータの前処理。高次元のデータを、重要なものだけを選んだ低次元データにする。
(低次元データの方が学習しやすい / パフォーマンスが出やすい。) 

5. Dataset loading utilities
scikit-learn で遊ぶたえの学習データを用意しているので、その読み出し方。

6. Bigger data
より大きなデータのためのいろいろ。追加学習とか。

7. Computation performance
実行速度について 

 

たぶん、5 から始めるとおもちゃ (=toy data) がまず手に入るので、
 そこから始めようかな。