36
© 2015 IBM Corporation Python/PySpark で始めるデータ分析の基本 〜ハンズオン編〜 2016/07/29版 ⾙嶋 創 テクニカルセールス アナリティクス事業部本部 IBM

Data Scientist Workbench - dots0729

Embed Size (px)

Citation preview

Page 1: Data Scientist Workbench - dots0729

© 2015 IBM Corporation

Python/PySpark で始めるデータ分析の基本〜ハンズオン編〜

2016/07/29版

⾙嶋 創テクニカルセールス

アナリティクス事業部本部IBM

Page 2: Data Scientist Workbench - dots0729

本⽇の内容

▪ Data Scientist Workbenchとは▪ ハンズオン

Page 3: Data Scientist Workbench - dots0729

本⽇の内容

▪ Data Scientist Workbenchとは▪ ハンズオン

Page 4: Data Scientist Workbench - dots0729

データ分析のプロセス

データ収集

クレンジング

モデリング・データ加⼯

アクション

レポーティング Data Scientist Workbenchで対応可能

Page 5: Data Scientist Workbench - dots0729

Data Science Workbench© Copyright IBM Corp. 2016

特徴• 誰でも無料• Spark環境構築済み• プログラミング実⾏環境も⽤意• コミュニティを通した知識の共有• 継続的な機能追加

“Making open source data science easy”

Page 6: Data Scientist Workbench - dots0729

ログイン後の画⾯

データ操作および分析のためのツール

Data Science Workbenchのフォーラム、情報共有、リクエスト

①データ投⼊ ②データ整形③データ整形と分析の実⾏

分析のためのデータ提供(Bluemixおよびpublicデータ)

Page 7: Data Scientist Workbench - dots0729

ツール実⾏時の画⾯

Open Refine

Jupyter

seahorse

Apache Zeppelin

アイコン化

My Data

RStudio

Page 8: Data Scientist Workbench - dots0729

「RStudio」

• Rを使いやすくするのための統合開発環境• Rユーザーのデファクトスタンダード• 通常のRプログラムだけでなくSparkRも実⾏可能• Data Scientist WorkbenchではBig R(SystemML)も実⾏可能

• IBMの提供するライブラリ• スケーラブルかつ⾼パフォーマンス• Sparkに統合予定のSystemML

Page 9: Data Scientist Workbench - dots0729

RStudio - RユーザーがSparkRを利⽤するためのIDE

Sparkと連携

グラフ表⽰可能

パッケージインストール可能

SparkRだけではなくRの記述・実⾏可能

Page 10: Data Scientist Workbench - dots0729

Jupyter, Zeppelin はNotebook… “Notebook”とは?

• 紙と鉛筆• 紙と鉛筆は、これまで⻑い間、科学者がメモや図⾯を通して進捗状況を⽂書化するための重要なツールである:

• 表現⼒• 累積した情報• コラボレーション

• Notebooks• Notebooks は、これまでの紙と鉛筆のデジタル版であり、再現性のある分析と⽂書化を可能にする:

• マークダウンとグラフ化• 反復探索• 共有が容易

Page 11: Data Scientist Workbench - dots0729

③データ整形と分析の実⾏「Jupyter Notebook」

• リリース• 2001年にリリースされたIPythonをベースに、2015年にJupyterとしてリリース

• ノートブック• WebブラウザからのGUI操作可能• コード実⾏、コメント記述、グラフの描画を実⾏可能

• カーネル• Data Scientist Workbenchでは、Scala,Python, Rを実⾏可能

Page 12: Data Scientist Workbench - dots0729

<参考>フィードバックとUI,データセンター

• 実現してほしいアイデアの投稿、投票が可能• トラブル発⽣時にはサポートへコンタクト可能

• 画⾯左下のユーザーアイコンからProfileの設定が可能

• ⾔語を「⽇本語」にすることでUIの⽇本語化

• 東京データセンターも準備中(現在はトロントかチャイナ)

Page 13: Data Scientist Workbench - dots0729

⾮常に多くの機能がありますが触りながら覚えて、育てていきましょう

Page 14: Data Scientist Workbench - dots0729

本⽇の内容

▪ Data Scientist Workbenchとは▪ ハンズオン

▪ お客様の購買傾向をもとにクラスタリングを実施します

▪ クラスタリングにはSparkの機械学習ライブラリのK-平均法(K-means)を利⽤します

▪ JupyterのPySparkを利⽤します

Page 15: Data Scientist Workbench - dots0729

Sparkの機械学習ライブラリ

• RDD• 分散処理⽤のデータセット

• DataFrame• テーブルのようなデータ構造をもった分散処理⽤データセット• SQLライクにデータ操作可能• 処理系によらず⾼速動作、今後の主流

• Spark.mllib• org.apache.spark.mllibパッケージの機械学習⽤クラス群• RDDをベースとしたAPIはメンテモード

• Spark.ml• org.apache.spark.mlパッケージのMLlibの機械学習⽤クラス群• ベースはDataFrame、プライマリ

Page 16: Data Scientist Workbench - dots0729

Spark MLLibのライブラリ分類と回帰

• モデル (SVM, ロジスティック回帰、線形回帰)• ナイーブベイズ• 決定⽊• アンサンブルツリー (ランダム⽊と勾配ブースト⽊)• 単調回帰

協調フィルタリング• 交互最⼩⼆乗法 (ALS)

クラスタリング• k-平均法(K-means)• 混合ガウス• べき乗クラスタリング (PIC)• 潜在的ディレクレ配分法 (LDA)• ⼆値k平均法• ストリーミング k-平均法

etchttp://mogile.web.fc2.com/spark/mllib-guide.html

Page 17: Data Scientist Workbench - dots0729

K-平均⽅(K-Means)とは、

• ラベル付けがなされていないデータに対して、近しい属性を持つデータをグループ化(クラスタリング) する⼿法

• マーケティング施策や商品の企画開発などに活⽤可能• 製品ごとの特徴を⽤いて類似の製品をグループ化(家電における価格、定

員、直近の販売台数など)• 顧客の特徴を⽤いて似たような利⽤傾向の顧客をグループ化 (来店頻度、

利⽤⾦額、購買製品傾向など)

• K-平均法(K-means)のステップを視覚で確認可能• http://stanford.edu/class/ee103/visualizations/kmeans/kmeans.html

Page 18: Data Scientist Workbench - dots0729

ハンズオン:Spark MLLibでクラスタリングJupyterでPythonによるSpark MLLibプログラムを実⾏します。

⼿順1.シェアされているNotebookを取得します。ブラウザで以下リンクhttp://bit.ly/bdu0729を開いてください。

2.Notebookを実⾏してクラスタリングを実⾏します。

Page 19: Data Scientist Workbench - dots0729

まとめ

• DSWB(RStudio、jupyter)を紹介• SparkのMLLibをK-meansを例に分析の流れを体感

• DSWBはSparkを使った分析、機械学習を実⾏可能• Sparkを使わない通常のPythonやRの実⾏も可能

• ⾃習や分析適⽤可否の確認、セミナーなど様々な⽤途で利⽤できるので是⾮使ってみてください

Page 20: Data Scientist Workbench - dots0729

<参考>リファレンス

• Sparkプログラミングガイド (1.6.1)http://spark.apache.org/docs/latest/programming-guide.html

• Pyspark APIドキュメント (1.6.1)http://spark.apache.org/docs/latest/api/python/pyspark.html

• K-means(機械学習)のプログラミングガイドhttp://spark.apache.org/docs/latest/mllib-clustering.html

Page 21: Data Scientist Workbench - dots0729

<参考>①データ投⼊「My Data」分析のためのデータの投⼊を⾏う

現在のディレクトリ構成

新規ディレクトリ作成

データのアップロード

アップロードしたファイルは分析ツールから利⽤可能(Jupyter画⾯から利⽤が可能)

Page 22: Data Scientist Workbench - dots0729

<参考> ②データ整形「OpenRefine」

• Googleで開発されたGoogle Refineがベース• 2010年11⽉にイニシャルリリース、2012年10⽉にOpenRefineとしてオープンソース化

• WebブラウザからのGUI操作のみでデータのクレンジングやフォーマット変換が可能

• CSV, TSV, text files, XML, RDF, and JSON様々なファイルフォーマットに対応

• 分析を実⾏する前のデータの準備を実⾏

Page 23: Data Scientist Workbench - dots0729

<参考> OpenRefineによるデータの絞込やクレンジング

数値データの範囲をグラフで絞り込み

Page 24: Data Scientist Workbench - dots0729

<参考> OpenRefineによるデータの絞込やクレンジング

数値データの範囲をグラフで絞り込みデータのブレに対して

GUIでクレンジングが可能

Page 25: Data Scientist Workbench - dots0729

<参考>③データ整形と分析の実⾏「ZeppelinNotebook」• リリース

• 2012年にCommercial Product、2013年にオープンソース、2014年にASFインキュベーションプロダクト

• ノートブック• WebブラウザからのGUI操作可能• コード実⾏、コメント記述、グラフの描画を実⾏可能

• インタープリタ• Scala, Python, SQL,shellコマンド など

Page 26: Data Scientist Workbench - dots0729

<参考>「seahorse」

• DeepSense.ioにより2016年にver.1.0• Sparkアプリケーションを作成するためのプラットフォーム• WebGUIからアイコンを配置して機械学習やETLのプログラミング可能

Page 27: Data Scientist Workbench - dots0729

ファイルサーチ& URL挿⼊(ノートの共有)

「My Data」のファイルコードに挿⼊可能

<参考>Jupyter 操作画⾯

Page 28: Data Scientist Workbench - dots0729

<参考> Jupyterにおけるセル・コメント・コード

コメント

コード(実⾏中)

コード(未実⾏)

コメント

セルの種類

Page 29: Data Scientist Workbench - dots0729

<参考>よく使うJupyterのアイコン

状態のセーブ・チェックポイントの作成

セルの削除

セルの順番⼊れ替え

セルの実⾏

セルの追加

Page 30: Data Scientist Workbench - dots0729

<参考>修正したコード(セル)からの再実⾏

実⾏したセルに対して変更を加える

Page 31: Data Scientist Workbench - dots0729

<参考>修正したコード(セル)からの再実⾏

修正したセルから再実⾏可能番号が下のセルより上がっている

Page 32: Data Scientist Workbench - dots0729

<参考>コード補完

Tabを押下することでコード補完が⾏われる

Page 33: Data Scientist Workbench - dots0729

<参考>キーボードショートカットキーボードショートカットによるviライクな操作が可能 (j、kでセ ル間を移動)Enterでセル毎の編集モードに⼊り、EscでNotebookへのコマンドモードに変更

Page 34: Data Scientist Workbench - dots0729

<参考>

ユーザーインターフェースの細かい解説を確認可能

Page 35: Data Scientist Workbench - dots0729

<参考>Jupyterで新規Notebookを作成する

1. 左側のアイコンリストからJupyterを選択2. 右上のNew Notebook TypeからPythonを選択

Page 36: Data Scientist Workbench - dots0729

ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独⾃の⾒解を反映したものです。それらは情報提供の⽬的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助⾔を意図したものではなく、またそのような結果を⽣むものでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努⼒しましたが、「現状のまま」提供され、明⽰または暗⽰にかかわらずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使⽤によって、あるいはその他の関連によって、いかなる損害が⽣じた場合も、IBMは責任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使⽤を規定する適⽤ライセンス契約の条項を変更することを意図したものでもなく、またそのような結果を⽣むものでもありません。本講演資料でIBM製品、プログラム、またはサービスに⾔及していても、IBMが営業活動を⾏っているすべての国でそれらが使⽤可能であることを暗⽰するものではありません。本講演資料で⾔及している製品リリース⽇付や製品機能は、市場機会またはその他の要因に基づいてIBM独⾃の決定権をもっていつでも変更できるものとし、いかなる⽅法においても将来の製品または機能が使⽤可能になると確約することを意図したものではありません。本講演資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上⾼の向上、またはその他の結果が⽣じると述べる、または暗⽰することを意図したものでも、またそのような結果を⽣むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使⽤した測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、⼊出⼒構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使⽤したか、またそれらのお客様が達成した結果の実例として⽰されたものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。IBM、IBM ロゴ、ibm.comは、 世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。Adobe, Adobeロゴ, PostScript, PostScriptロゴは、Adobe Systems Incorporatedの⽶国およびその他の国における登録商標または商標です。

IT Infrastructure LibraryはAXELOS Limitedの登録商標です。インテル, Intel, Intelロゴ, Intel Inside, Intel Insideロゴ, Centrino, Intel Centrinoロゴ, Celeron, Xeon, Intel SpeedStep, Itanium, およびPentium は Intel Corporationまたは⼦会社の⽶国およびその他の国における商標または登録商標です。Linuxは、Linus Torvaldsの⽶国およびその他の国における登録商標です。PowerLinux is a trademark of International Business Machines Corp. The registered trademark Linux is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis.Microsoft, Windows, Windows NT および Windowsロゴは Microsoft Corporationの⽶国およびその他の国における商標です。

ITILはAXELOS Limitedの登録商標です。UNIXはThe Open Groupの⽶国およびその他の国における登録商標です。

Cell Broadband Engineは、Sony Computer Entertainment, Inc.の⽶国およびその他の国における商標であり、同社の許諾を受けて使⽤しています。JavaおよびすべてのJava関連の商標およびロゴは Oracleやその関連会社の⽶国およびその他の国における商標または登録商標です。Linear Tape-Open, LTO, LTOロゴ, UltriumおよびUltriumロゴは、HP, IBM Corp.およびQuantumの⽶国およびその他の国における商標です。