pythonで機械学習を自動化 auto sklearn

16
Python ででででででででで auto-sklearn 2015/10/24 PyLadies Tokyo 1st Anniversary Party Yukino Ikegami @_yukinoi

Upload: yukino-ikegami

Post on 15-Apr-2017

7.992 views

Category:

Data & Analytics


3 download

TRANSCRIPT

Page 1: Pythonで機械学習を自動化 auto sklearn

Python で機械学習を自動化auto-sklearn

2015/10/24PyLadies Tokyo 1st Anniversary Party

Yukino Ikegami@_yukinoi

Page 2: Pythonで機械学習を自動化 auto sklearn

自己紹介• 名前 : 池上 ゆきの• やってること : 自然言語処理・データマイニング• Python 歴 プログラミング歴≒

• ブログ– はてな : http://yukinoi.hatenablog.com/– Qiita: http://qiita.com/yukinoi

Page 3: Pythonで機械学習を自動化 auto sklearn

機械学習には…

Page 4: Pythonで機械学習を自動化 auto sklearn

いろんなアルゴリズムがある

Page 5: Pythonで機械学習を自動化 auto sklearn

いろんなハイパーパラメーターがある

λ

αβ

ηC

γ

Page 6: Pythonで機械学習を自動化 auto sklearn

いろんな組み合わせがあるα

βγ

λ

η

C

Page 7: Pythonで機械学習を自動化 auto sklearn

一番いいのを頼む!

Page 8: Pythonで機械学習を自動化 auto sklearn

そこで Auto ML

Page 9: Pythonで機械学習を自動化 auto sklearn

auto-sklearn

与えられたデータをもとに scikit-learn の中から• よさげな前処理選んで• よさげな学習アルゴリズム選んで• よさげなハイパーパラメーター選んでそれらをアンサンブル

Page 10: Pythonで機械学習を自動化 auto sklearn

どんな風にやるの?

1. Meta learning で初期値を得る2. よさげな前処理 / アルゴリズム / パラメーターを探索3. よさげなものを束ねる ( アンサンブル )

From Feurer et al. 2015

Page 11: Pythonで機械学習を自動化 auto sklearn

Meta Learning

• どの手法がどういうデータに向いているかをモデル化– データ数、素性の数、データ数と素性数の比率、– クラス数、欠損値の数、歪度、エントロピー , など

OpenML の 140 データセットから学習

Page 12: Pythonで機械学習を自動化 auto sklearn

よさげな組み合わせを見つけるsolver で探索• 前処理 / アルゴリズム / ハイパーパラメーター– SMAC

• アンサンブル– runsolver

Page 13: Pythonで機械学習を自動化 auto sklearn

実際に試してみた• 10 分間探索– https://github.com/ikegami-yukino/misc/blob/ma

ster/machinelearning/auto-sklearn/Example.ipynb

– 学習用と検証用でデータを 9 : 1 に分割• Accuracy– Iris: 1.0– digits: 0.975

Page 15: Pythonで機械学習を自動化 auto sklearn

結び• AutoML の一手法として auto-sklearn を紹介• 伸びしろがある感じだけど未来っぽくてよい

Page 16: Pythonで機械学習を自動化 auto sklearn

くわしくはこちら• AutoML

– http://www.automl.org/• auto-sklearn

– https://github.com/automl/auto-sklearn– http://aad.informatik.uni-freiburg.de/papers/15-AUTOML-AutoML.pdf

• scikit-learn– http://scikit-learn.org/

• OpenML– http://www.openml.org/

• SMAC– http://www.cs.ubc.ca/labs/beta/Projects/SMAC/– http://www.cs.ubc.ca/labs/beta/Projects/SMAC/papers/10-LION-TB-SPO.pdf

• runsolver– http://jsat.ewi.tudelft.nl/content/volume7/JSAT7_12_Roussel.pdf