Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
徐 聖博
第3回メドレー読書会
1
自己紹介
2
経歴
• 2014/04 - 2015/06
• グリー株式会社
• 2015/07 -
• 株式会社メドレー
• 2014/04 -
• ターゲットスポーツ(※ダーツメーカー)
3
http://2013.rl-competition.org...
第2部
特集1:機械学習ソフトウェアの概観
• R, Python, Julia, Spark MLlib...
➡ 第1章 開発が進む機械学習ソフトウェア
➡ 第2章 機械学習のソフトウェアを用いた実行例
➡ 第3章 機械学習ソフトウェア選択...
読書会スタート!
5
6
特集1
機械学習ソフトウェアの概観
R, Python, Julia, Spark MLlib...
7
第1章
開発が進む機械学習ソフトウェア
機械学習ソフトウェアをめぐる動向
8
機械学習のソフトウェアをめぐる動向
9
機械学習アルゴリズム向けに、多くのソフトウェアがある
R, Python, Julia, Weka, RapidMiner, KNIME,
Orange, ELKI, Shogun, Apache Mah...
データ分析者が使用するツールのアンケート結果
10 © 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
本書で取り上げる機械学習ソフトウェアの概要
11
R
• データ解析の代表的なソフトウェア。基本的にオンメモリ処理なので、大
規模なデータを扱うのは難しい
Python
• 汎用的なスクリプト言語。Numpy, Scipy, scikit-le...
代表的なソフトウェアの概要
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の関数で実装したライブラリ
クラウドサ...
各ソフトウェアで実行可能なタスク
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/再現率)
• 適合率と再現率の調和平均
正解率...
実際に動かして見よう!

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の方が応用が広いイメージ
速度が求められるが、開発に時間が避けない場合はJuli...
第2部特集1はここまで
30
Upcoming SlideShare
Loading in …5
×

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

352 views

Published on

【第3回メドレー読書会】
http://medley.connpass.com/event/22210/
で使った資料。

Published in: Technology
  • Be the first to comment

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

  1. 1. 徐 聖博 第3回メドレー読書会 1
  2. 2. 自己紹介 2
  3. 3. 経歴 • 2014/04 - 2015/06 • グリー株式会社 • 2015/07 - • 株式会社メドレー • 2014/04 - • ターゲットスポーツ(※ダーツメーカー) 3 http://2013.rl-competition.org/results 保有資格 ダーツプロライセンス ジグソーパズル検定1級 大学院時代の研究 人工知能(進化計算) ICML RL Competition 1位
  4. 4. 第2部 特集1:機械学習ソフトウェアの概観 • R, Python, Julia, Spark MLlib... ➡ 第1章 開発が進む機械学習ソフトウェア ➡ 第2章 機械学習のソフトウェアを用いた実行例 ➡ 第3章 機械学習ソフトウェア選択の指針 本日のメニュー(徐担当分) 4
  5. 5. 読書会スタート! 5
  6. 6. 6 特集1 機械学習ソフトウェアの概観 R, Python, Julia, Spark MLlib...
  7. 7. 7 第1章 開発が進む機械学習ソフトウェア
  8. 8. 機械学習ソフトウェアをめぐる動向 8
  9. 9. 機械学習のソフトウェアをめぐる動向 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. 10. データ分析者が使用するツールのアンケート結果 10 © 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
  11. 11. 本書で取り上げる機械学習ソフトウェアの概要 11 R • データ解析の代表的なソフトウェア。基本的にオンメモリ処理なので、大 規模なデータを扱うのは難しい Python • 汎用的なスクリプト言語。Numpy, Scipy, scikit-learn, Pandasなどパッ ケージ開発が進み、データ解析分野でも注目が集まっている Julia • 2012年に公開された科学計算のための新しい言語。期待が集まる Apache Mahout • Apache HadoopやApache Spark上で動作する機械学習ライブラリ。大 規模並列分散処理の草分け的存在 Spark MLlib • Apache Spark上で動く機械学習ライブラリ。Sparkと共に、今後に注目
  12. 12. 代表的なソフトウェアの概要 12
  13. 13. R 13 • 統計解析言語 • 統計解析、可視化、データ加工・変換など多岐に わたる手法が即座に利用できる ⃝ 資料が最も潤沢にあるソフトウェア ☓ オンメモリで扱うため、大規模データに向かない
  14. 14. Python 14 • 汎用的なスクリプト言語 • package使用で機械学習アルゴリズムを実行可能 ⃝ Webアプリケーションに機械学習を組込み易い ☓ Rほどパッケージが充実していない
  15. 15. Julia 15 • MITで開発されている計算機科学のソフトウェア • 洗練された型システムと多重ディスパッチ ⃝ LLVMのjust-in-timeコンパイルによる高処理速度 ⃝ 発展が期待される有望なプログラミング言語 ☓ 発展途上のため、参考文献が少ない
  16. 16. Apache Mahout 16 • Apache HadoopやApache Spark上で動作する 機械学習ライブラリ ⃝ 大規模並列分散処理により機械学習を行える ☓ 反復処理に多大なコストが
  17. 17. Spark MLlib 17 • 分散処理エンジン(Apache Spark Core)を中心 に置き、ライブラリの充実させる方針 ⃝ Sparkで利用できるライブラリも使える ☓ Scalaが辛い人は辛いかも(私見)
  18. 18. その他 18 Weka/RapidMiner/KNIME • GUIによりデータ分析のフローを記述できる Shogun • 様々なカーネルのSVMを実装している Hivemall • Apache Hiveの関数で実装したライブラリ クラウドサービス • MicrosoftやAmazonのサービスが代表例
  19. 19. 各ソフトウェアで実行可能なタスク 19
  20. 20. ソフトウェアがカバーする主要なタスク 20 © 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
  21. 21. 21 第2章 機械学習のソフトウェアを 用いた実行例
  22. 22. 予測モデルの構築・評価 22 © 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
  23. 23. 予測モデルの構築・評価 23 混合行列:予測と実績のクラスレベルの組み合わせを集計した分割表 © 2015 技術評論社 データサイエンティスト養成読本 機械学習入門
  24. 24. 予測モデルの構築・評価 24 正例 • 対象とするクラスに属するもの 負例 • 対象とするクラスに属さないもの 適合率 (Precision) = tp / (tp + fp) • 正例と予測したもののうち、実際に正例の割合
  25. 25. 予測モデルの構築・評価 25 再現率 (Recall) = tp / (tp + fn) • 実際正例のうち、正例と予測したものの割合 F-値 (F value) = 2 / (1/適合率 + 1/再現率) • 適合率と再現率の調和平均 正解率 (Accuracy) = (tp + tn) / (tp + fp + fn + tn) • 正例と負例の両方で予測と実績が一致した割合
  26. 26. 実際に動かして見よう!
 https://github.com/shengbo-medley/ MiscForStudy/tree/master/20151201 26
  27. 27. 27 第3章 機械学習ソフトウェア選択の指針
  28. 28. プログラミング経験が少ない場合はGUIツール 28 プログラミングの学習コストを低くしたい • 機械学習やソフトウェアの学習と合わせると大変 GUIツールの積極的活用 • KNIMEやWekaなどはGUIがあり、便利(らしい)
  29. 29. プログラミングに抵抗がなければPythonかR 29 RやPythonはパッケージ/ライブラリ/マニュアルが豊富 • 高速化が必要な場合、Rは弱い • Pythonの方が応用が広いイメージ 速度が求められるが、開発に時間が避けない場合はJulia • 情報が少ないが、科学技術計算の高速化に向く 1台の計算機のメモリには収まらない規模の場合は Spark MLlibやApache Mahout • 最近はSparkが流行っているという印象がある
  30. 30. 第2部特集1はここまで 30

×