シリーズml-03 ランダムフォレストによる自動識別

26
Ver. 1.0, 2017-08-11 森下功啓 1

Upload: katsuhiro-morishita

Post on 22-Jan-2018

167 views

Category:

Data & Analytics


0 download

TRANSCRIPT

Page 1: シリーズML-03 ランダムフォレストによる自動識別

Ver. 1.0, 2017-08-11

森下功啓

1

Page 2: シリーズML-03 ランダムフォレストによる自動識別

識別(分類)問題とは?

• 特徴ベクトルを基に、クラスを分類する問題を識別問題という

2

• 特徴ベクトルが数値やラベルという点は回帰問題と同じ

• 正解が文字列や整数で与えられる「ラベル」という点が回帰問題と異なる

“ネコ”

“イヌ”

学習器

学習器

ここでの「クラス」とは、”猫”とか”イヌ”のこと

Page 3: シリーズML-03 ランダムフォレストによる自動識別

Random Forestの概要

3

Page 4: シリーズML-03 ランダムフォレストによる自動識別

Tree Model(木)

Tree Modelは、非線形回帰分析の一種である。樹状のグラフ

を作成して結果を表示するという特徴を持つ。目的変数が量的変数のとき回帰木、質的変数のとき決定木という。

4

https://ja.wikipedia.org/wiki/%E6%B1%BA%E5%AE%9A%E6%9C%A8

枝分かれの様子が木に似ている

Page 5: シリーズML-03 ランダムフォレストによる自動識別

決定木の例

5http://www.slideshare.net/mrtc0/machine-learning-41005650?next_slideshow=1

Page 6: シリーズML-03 ランダムフォレストによる自動識別
Page 7: シリーズML-03 ランダムフォレストによる自動識別

7

ところで、特徴量の中にはノイズにすぎないものや、場合によっては予想結果に悪影響を及ぼすものもある。

そこで、多数の全特徴量から一部をランダムに取り出して決定木を作成し、それらを多数束ねることでForest(森)とする。

また、このForestを構成する個々の木の多数決で最終出力を決定する。これがランダムフォレスト(RF)である。

*ランダムフォレストはアンサンブル学習の一種

Page 8: シリーズML-03 ランダムフォレストによる自動識別

RFの良いところ

外れ値に強い

とりあえず使っておけ、という安心感

大抵の問題に適用可能

回帰問題も識別(分類)問題にも対応

8

Page 9: シリーズML-03 ランダムフォレストによる自動識別

RFの学習例

• この例では特徴量は2つ

• 色でクラスターを表している

• クラスターを綺麗に分離できれば成功

9http://qiita.com/yshi12/items/6d30010b353b084b3749

元データ 学習後に決定境界を描画した様子過学習を若干起こしている。

Page 10: シリーズML-03 ランダムフォレストによる自動識別

ランダムフォレストを用いた、アヤメ(Iris)の自動識別の例

10

Page 11: シリーズML-03 ランダムフォレストによる自動識別

アヤメ(Iris)の分類問題

11

Iris versicolorIris setosa Iris versinica

3種類の花の種類を自動的に識別したい

Page 12: シリーズML-03 ランダムフォレストによる自動識別

Irisの4つの特徴量

• ガク片の長さと幅

• 花弁の長さと幅

12

https://www.kamikochi-vc.or.jp/learn/dictionary/dic_plants.html

Page 13: シリーズML-03 ランダムフォレストによる自動識別

特徴量の散布図行列

花の種類毎(層別)に色を付けた散布図行列

setosaは完全に集団から独立しており、識別しやすそうだ。 13

Page 14: シリーズML-03 ランダムフォレストによる自動識別

サンプルプログラムのダウンロード

14

1

2

Download: https://github.com/KatsuhiroMorishita/machine_leaning_samples

Page 15: シリーズML-03 ランダムフォレストによる自動識別

15

• 以降のスライドでは、下記のプログラムを使った解説を行います• ランダムフォレストというアルゴリズムを利用したサンプルです

Page 16: シリーズML-03 ランダムフォレストによる自動識別

iris_learning.csv

• 学習に使う教師データが格納されたCSVファイル

• 個体ごとの花弁とがく片の数値が並んでいる

16

1個体分のデータ

特徴ベクトル正解ラベル

Page 17: シリーズML-03 ランダムフォレストによる自動識別

learning.py

• 学習に使うPythonのスクリプト(プログラム)

17

Page 18: シリーズML-03 ランダムフォレストによる自動識別

18

ライブラリの取り込み

ファイルの読み込み

列で切り出しx: 特徴ベクトルy: 正解ラベル

学習

学習データに対する適合率計算

2次元配列→1次元配列

学習器の作成

学習済みの学習器をファイルに保存

学習器の動作確認

特徴量毎の重要度の確認

Page 19: シリーズML-03 ランダムフォレストによる自動識別

learning.pyの実行方法@Windows

• プログラムのあるフォルダでShift+右クリック

• メニューから「コマンドウィンドウをここで開く」又は「PowerShellウィンドウをここに開く」をクリック

• ウィンドウが開いたら、コマンドを入力してエンターキーを押す

19

実行したいプログラム名

*実行にはPython3とscikit-learnなどのパッケージがインストールされたPC/Macが必要です

Page 20: シリーズML-03 ランダムフォレストによる自動識別

実行結果の例

20なお、「ランダム」フォレストなので、結果は毎回微妙に変化する

学習がうまく行ったか1つ入力して試している

学習データに対するフィット具合

特徴量が結果に及ぼす影響力

Irisは3つ目と4つ目の特徴量の影響が大きいことが分かる。

Page 21: シリーズML-03 ランダムフォレストによる自動識別

ファイルに保存された学習器

• learning.pyを実行すると学習が行われ、学習済みの学習器はファイルに保存される

• 保存されたファイルを使えば、いつでも学習後の学習器を利用できる

21

保存されたモデル情報と、結合係数

中身はモデル構造やパラメータが記録されたバイナリである

Page 22: シリーズML-03 ランダムフォレストによる自動識別

prediction.py

• 検証データを使って、学習成果を検証するプログラム

22

Page 23: シリーズML-03 ランダムフォレストによる自動識別

23

ライブラリの取り込み

ファイルの読み込み

列で切り出し

予測

予測結果の保存

ファイルに保存済みの学習器を読みだして、オブジェクトを再構成

結果が数値でも文字列に変換

Page 24: シリーズML-03 ランダムフォレストによる自動識別

実行結果の例

24

コンソールへの出力

結果はcsvファイルとしても出力さている

Page 25: シリーズML-03 ランダムフォレストによる自動識別

検証データと予測の比較

• 検証データの正解と予測を比較することで性能を判断できる

• 正解と予測が一致していた方が良い

25

sepal_length sepal_width petal_length petal_width kind 予測 一致チェック

5.1 3.8 1.9 0.4 setosa setosa 1

4.8 3 1.4 0.3 setosa setosa 1

5.1 3.8 1.6 0.2 setosa setosa 1

4.6 3.2 1.4 0.2 setosa setosa 1

5.3 3.7 1.5 0.2 setosa setosa 1

5 3.3 1.4 0.2 setosa setosa 1

5.7 3 4.2 1.2 versicolor versicolor 1

5.7 2.9 4.2 1.3 versicolor versicolor 1

6.2 2.9 4.3 1.3 versicolor versicolor 1

5.1 2.5 3 1.1 versicolor versicolor 1

5.7 2.8 4.1 1.3 versicolor versicolor 1

6.7 3 5.2 2.3 virginica virginica 1

6.3 2.5 5 1.9 virginica virginica 1

6.5 3 5.2 2 virginica virginica 1

6.2 3.4 5.4 2.3 virginica virginica 1

5.9 3 5.1 1.8 virginica virginica 1

この例では完全一致であった

Page 26: シリーズML-03 ランダムフォレストによる自動識別

26