30
聖博 第3回メドレー読書会 1

第3回メドレー読書会前半

Embed Size (px)

Citation preview

徐 聖博第3回メドレー読書会

1

自己紹介

2

経歴 • 2014/04 - 2015/06 • グリー株式会社

• 2015/07 - • 株式会社メドレー

• 2014/04 - • ターゲットスポーツ(※ダーツメーカー)

3

http://2013.rl-competition.org/results

保有資格 ダーツプロライセンス ジグソーパズル検定1級大学院時代の研究 人工知能(進化計算) ICML RL Competition 1位

第2部 特集1:機械学習ソフトウェアの概観 • R, Python, Julia, Spark MLlib...

➡第1章 開発が進む機械学習ソフトウェア ➡第2章 機械学習のソフトウェアを用いた実行例 ➡第3章 機械学習ソフトウェア選択の指針

本日のメニュー(徐担当分)

4

読書会スタート!

5

6

特集1機械学習ソフトウェアの概観 R, Python, Julia, Spark MLlib...

7

第1章開発が進む機械学習ソフトウェア

機械学習ソフトウェアをめぐる動向

8

機械学習のソフトウェアをめぐる動向

9

機械学習アルゴリズム向けに、多くのソフトウェアがある

R, Python, Julia, Weka, RapidMiner, KNIME, Orange, ELKI, Shogun, Apache Mahout, Spark MLlib, Hivemall, Jubatus, Vowpal Wabbit, Accord.NET Machine Learning, SAS, MATLAB, SPSS...

データ分析者が使用するツールのアンケート結果

10 © 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

本書で取り上げる機械学習ソフトウェアの概要

11

R • データ解析の代表的なソフトウェア。基本的にオンメモリ処理なので、大規模なデータを扱うのは難しい

Python • 汎用的なスクリプト言語。Numpy, Scipy, scikit-learn, Pandasなどパッケージ開発が進み、データ解析分野でも注目が集まっている

Julia • 2012年に公開された科学計算のための新しい言語。期待が集まる Apache Mahout • Apache HadoopやApache Spark上で動作する機械学習ライブラリ。大規模並列分散処理の草分け的存在

Spark MLlib • Apache Spark上で動く機械学習ライブラリ。Sparkと共に、今後に注目

代表的なソフトウェアの概要

12

R

13

• 統計解析言語 • 統計解析、可視化、データ加工・変換など多岐にわたる手法が即座に利用できる

◯資料が最も潤沢にあるソフトウェア

☓ オンメモリで扱うため、大規模データに向かない

Python

14

• 汎用的なスクリプト言語 • package使用で機械学習アルゴリズムを実行可能

◯Webアプリケーションに機械学習を組込み易い

☓ Rほどパッケージが充実していない

Julia

15

• MITで開発されている計算機科学のソフトウェア • 洗練された型システムと多重ディスパッチ

◯ LLVMのjust-in-timeコンパイルによる高処理速度 ◯発展が期待される有望なプログラミング言語

☓ 発展途上のため、参考文献が少ない

Apache Mahout

16

• Apache HadoopやApache Spark上で動作する機械学習ライブラリ

◯大規模並列分散処理により機械学習を行える

☓ 反復処理に多大なコストが

Spark MLlib

17

• 分散処理エンジン(Apache Spark Core)を中心に置き、ライブラリの充実させる方針

◯ Sparkで利用できるライブラリも使える

☓ Scalaが辛い人は辛いかも(私見)

その他

18

Weka/RapidMiner/KNIME • GUIによりデータ分析のフローを記述できる Shogun • 様々なカーネルのSVMを実装している Hivemall • Apache Hiveの関数で実装したライブラリ クラウドサービス • MicrosoftやAmazonのサービスが代表例

各ソフトウェアで実行可能なタスク

19

ソフトウェアがカバーする主要なタスク

20

© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

21

第2章機械学習のソフトウェアを 用いた実行例

予測モデルの構築・評価

22© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

予測モデルの構築・評価

23

混合行列:予測と実績のクラスレベルの組み合わせを集計した分割表© 2015 技術評論社 データサイエンティスト養成読本 機械学習入門

予測モデルの構築・評価

24

正例 • 対象とするクラスに属するもの 負例 • 対象とするクラスに属さないもの 適合率 (Precision) = tp / (tp + fp) • 正例と予測したもののうち、実際に正例の割合

予測モデルの構築・評価

25

再現率 (Recall) = tp / (tp + fn) • 実際正例のうち、正例と予測したものの割合

F-値 (F value) = 2 / (1/適合率 + 1/再現率) • 適合率と再現率の調和平均 正解率 (Accuracy) = (tp + tn) / (tp + fp + fn + tn) • 正例と負例の両方で予測と実績が一致した割合

実際に動かして見よう!https://github.com/shengbo-medley/MiscForStudy/tree/master/20151201

26

27

第3章機械学習ソフトウェア選択の指針

プログラミング経験が少ない場合はGUIツール

28

プログラミングの学習コストを低くしたい • 機械学習やソフトウェアの学習と合わせると大変 GUIツールの積極的活用 • KNIMEやWekaなどはGUIがあり、便利(らしい)

プログラミングに抵抗がなければPythonかR

29

RやPythonはパッケージ/ライブラリ/マニュアルが豊富 • 高速化が必要な場合、Rは弱い • Pythonの方が応用が広いイメージ 速度が求められるが、開発に時間が避けない場合はJulia • 情報が少ないが、科学技術計算の高速化に向く 1台の計算機のメモリには収まらない規模の場合は Spark MLlibやApache Mahout • 最近はSparkが流行っているという印象がある

第2部特集1はここまで

30