93

Click here to load reader

データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

Embed Size (px)

Citation preview

Page 1: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

『データ分析に必要なスキルをつけるためのツール~Jupyterノートブック、R連携、機械学習からSparkまで~』

Atsushi TsuchiyaTechnical Lead, Analytics Client ArchitectIBM Analytics@eatsushi

#datapalooza @bigdatau

Page 2: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

Two Problems in Data Science:

Skills Tools

Commitment to Data Science Education

Page 3: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

beta.bigdatauniversity.com

Page 4: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

• MOOC community (sponsored by IBM)

• データサイエンス・ビッグデータに関するコース

• @yourpace, @yourplace

• 完了証明書 and badges• 60+ コース• ユーザが430,000人+

BigDataUniversity.com

What is Big Data University (BDU)?

Page 5: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

• 5-5-5 rule

• 各コースに• レッスンが5つ

• ビデオレクチャーが5つ

• ビデオレクチャーが5分間

• ハンズオン

BigDataUniversity.com

What is Big Data University (BDU)?bit.ly/introtokyoR

Page 6: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

6

bit.ly/introtokyoR

Page 7: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

Meetups

Page 8: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

www.bigdatauniversity.com/events

Event Recordingsbit.ly/introtokyoR

Page 9: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

meetup.com/BDU-Tokyo

9

• 無償• ハンズオン

Page 10: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

Two Problems in Data Science:

Skills Tools

Commitment to Data Science Education

Page 11: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

11

無償オンラインツールへの登録方法は、補足資料をご覧ください。

Page 12: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

bit.ly/introtokyoR ←登録後にアクセス可能

Page 13: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

13

Page 14: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

14

Go to(デモ):

bit.ly/introtokyoR

登録後にアクセス可能になります:

無償オンラインツールへの登録方法は、補足資料をご覧ください。

Page 15: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

• Hadoopでやったこと+α• バッチ(集計)、ストリーム(ミニバッチ)や、分析(SPSS,Rでできる事、グラフ処理)

• データストアは、HDFSに限定されない

• ファイルシステム、DBなどなど• 言語は、SQL,R,Java,Scala,Pythonなどが使える

• インターラクティブな分析• Jupyter notebook , Apache zeppelin• Hadoopとは異なり、バッチが終わるまで待ち続けることはありません。

Apache Sparkでできること

インターラクティブ分析が可能に!

Packages

Page 16: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

• Apache Sparkは、汎用的(多目的)で柔軟性があります。その理由は:• 複数言語(SQL, R, Java,

Python, Scala)、HDFSだけではなく複数データストア、YARNとの連携(MESOS)ができる

• Sparkコア・エンジンを利用して、複数のエントリー・ポイント;SQL, ストリーム処理, R,機械学習, および、グラフ処理

Apache Sparkの構成

Apache Sparkの構成Spark R

Spark

core

Unified engine across diverse workloads and environments

Page 17: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

Sparkと周辺のエコシステム

現在まで:フロント側の開発により力を

今後:フロントに加え、バックエンド側も重視

【アプリケーション】

【実行環境】 【データソース】

Page 18: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

• コマンドライン• インターフェイス

• jupyter• Apache Zeppelin

Sparkにどのようにアクセスするのか?

Standalone

Cluster

Zeppelin※Laptopで試せます!

Page 19: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

• 「Apache Spark入門 動かして学ぶ最新並列分散処理フレームワーク」で説明されている内容に準じます;

Sparkクラスタの構成コンポーネント

■一般的には、各サーバにHDFSとYARNのコンポーネント(DataNodeとNodeManager)をインストールします。

これは、データ・ローカリティを活用するためにです。■NameNodeとResourceManagerは、

可用性の観点や運用保守観点を考慮し、同一マシーンにインストールするケース(ノード台数を減らせる)と、物理的に異なるマシーン(ノード台数が増える)ケースがあります。■この左の図は、SparkマスタノードにNameNodeとResourceManagerを同居させている例です。

Page 20: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

• SPSSは、どうなるの?• Spark MLlib(機械学習モジュール)との組み合わせです。

• 加工部分で威力があるかも。

Sparkの使いどころと、SPSSの関係

1.システム部から基幹取引データをCSVファイルでもらう

2.文字コード変換する(ホストからのデータの場合は注意が必要)

3.不要なレコードを条件抽出で排除

4.列と行を入れ替え

5. 顧客マスターをCSVでもらう

6. また文字コード変換、不要レコード、列と行・・

7. 住所をGoogleMapAPIを使って緯度経度に変換

8. 緯度経度から最寄り駅の距離を算出するPythonのプログラム

ここでやっとアルゴリズム

データの型があわずエラー!

Sparkの使いどころ②機械学習

最も手間がかかるのはデータの加工です。ビッグデータ分析の多くを占める処理は、実は「データ整形」です。~作業の80%はデータ整備、それは基幹データが分析のために作られていないから、とも言われています。~

Sparkの使いどころ①

~SPSS(統計解析ミドルウェア)を利用した分析工程の内訳~

Page 21: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

• Analytics serverコンポーネントは、Hadoopクラスタ上で稼働し、Sparkとの連結も可能

SPSS Analytics Server連携SPSS Modeler Client

SPSS Analytic Server

MetadataHCatalog

Resource ManagementYARN / Platform Symphony

Distributed File SystemHDFS / GPFS

Ope

ratio

nsAm

bari

SQLHive

オンラインHBase

Accumulo

バッチMap/Reduce

インメモリSpark

Analytic Workbench

Hadoop Cluster• BigInsights 4.1• Hortonworks 2.3

SPSS Modeler Server

SPSS Analytics Serverモジュールが

重要。Sparkだけではなく、Hadoopにもアクセスができる仕組み

DB

Page 22: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

• インストール、設定、メンテナンスは、Ambariを介して実施します。

SPSS Analytics Server連携

Page 23: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

• Sparkを呼び出すことも可能(pythonから)

①Sparkの呼び出し

規定のアルゴリズム以外はPythonからロ

ジックを実装することが可能です

Page 24: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

• Nine Algorithms for Big Data — Spark and/or MapReduce

②SPSSがあるのになぜSpark MLlib?

SPSS democratizes analytics, extending benefits to users who do not want to programAccess to a broader library of analytic algorithms delivers solutions to more use cases1.In addition to SPSS algorithms that now run in Spark, Data Scientists can utilize more than 15 algorithms from Spark MLlib2.Data Scientists can create new Modeler nodes to exploit MLlib algorithms & share them with non-programmer Data Scientists3.Via shared Modeler nodes, non-programmer Data Scientists leverage Spark functionality in their own analytic workflows

SPSS Modelerにある9つのアルゴリズム

SPSSにはないアルゴリズム、R連携ができるようになり、SPSSの使い勝手は継承できる

Page 25: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

• Using Modeler's Custom Dialog builder to abstract code behind a GUI makes Spark usable for non-programmers.

③SPSS Modeler カスタム・ダイアログ・ビルダー

The Custom Dialog Builder – Python for Spark (The Custom Dialog Builder adds Python for Spark support )Provides access to Spark & its machine learning library (MLlib)Also provides access to other common Python libraries e.g.: Numpy, Scipy, Scikit-learn, PandasData Scientists can create new Modeler nodes (extensions) that exploit algorithms from MLlib and other PySpark processes

Page 26: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

• Github for SPSS http://ibmpredictiveanalytics.github.io/

Page 27: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

SPSS Client

R (R Studio IDE)

今までは・・・データウェアハウス(PDA)SPSS Modeler Server

分析指示

分析結果表示

RDBデータリクエスト分析指示

処理結果返信

ストリームイメージ

Page 28: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

これからの”データレイク的な考え方”は・・・SPSS Modeler

Client データウェアハウス(PDA)SPSS Modeler Server

SPSS Analytics ServerInfosphere BigInsights with SPSS Analytics Server(Hadoop基盤)

分析指示

分析結果表示

Hadoopデータリクエスト

処理結果返信

処理結果返信

Hadoopデータ分析指示

)BigInsights(Hadoop)で分析処理実行

SPSSの処理をHadoop処理に変換

RDBデータリクエスト分析指示

処理結果返信

FluidQuery連携

Hadoopデータを取り込むストリームイメージ

SPSS AnalyticsServer

Sparkは、

インメモリ処理になるので、

Hadoopクラスタ

と共存する場合はリソース割り

当てに中が必要です。

Page 29: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

SPSS - R(SparkR)連携SPSS Client

R (R Studio IDE)

データウェアハウス(DB)SPSS Modeler Server

SPSS Analytics ServerInfosphere BigInsights with SPSS Analytics Server(Hadoopクラスタ基盤)

分析指示

分析結果表示

Hadoopデータリクエスト

処理結果返信

処理結果返信

Hadoopデータ分析指示

RスクリプトをHadoopクラスタで実行(R),

もしくはSparkクラスタ(SparkR)で実行

RDBデータリクエスト分析指示

処理結果返信

SPSS AnalyticsServer

Big R/SparkR

SPSSからRコードを生成することも可能

データ待避

Page 30: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

SilentLogアプリ特徴1日の活動を自動で記録する手軽さから、高い継続率を得ています

■アプリケーション名:SilentLog(サイレントログ) ※現在はiPhoneのみ対応https://silentlog.com

■アプリケーションの特徴:・移動手段、距離、時間、歩数を自動で記録し続けるライフログ(生活記録)アプリケーションです

・バッテリーの消費を国内外の競合アプリよりも抑えた上で同程度以上の記録精度を確保しています

■利用者の傾向:・30代男性を中心に、40代や50代の健康や記憶に関心の高いユーザー様にご利用いただいています

・30日継続率が約30%と、ユーザー様の定着率が高いです・ライフログ分野の代表的なアプリとして、複数の書籍や雑誌、ウェブメディアで取り上げられております

・ユーザーレビュー平均評価4.5(Ver2.4.1/評価24人)

Page 31: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

SDKにより収集された行動情報を分析することができます

SilentLog SDK

御社ソリューション

・自家用車管理・道路プローブ測定・交通情報分析・DSP連携(アドテク)・顧客行動調査・パネルリサーチ・屋外広告の効果測定・健康情報管理・訪日外国人調査・高齢者向けスマートシティの設計

・労働者の遠隔管理など

アクション

弊社アプリ

御社サービスSilentLog SDKを

組み込んだアプリ

人工知能で行動を分析

行動情報群

弊社アプリ統計データ

御社サービス統計データ

オープンデータ弊社追加データ

・行動情報(位置情報)・個人属性データ・アプリ利用データ・人口・地価などの公開済み動態情報

行動分析基盤SilentLog Analytics

・行動パターン推定・属性の推定・滞在情報の分析・歩行情報の分析・乗物情報の分析

行動情報データプラットフォーム

行動収集

行動情報

行動情報

通知可視化

iOS, Android

Page 32: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

SilentLog Analytics における、Spark(Bluemix)活用

弊社アプリ

御社サービスSilentLog SDKを組み込んだアプリ

行動情報群

弊社アプリ統計データ

御社サービス統計データ

オープンデータ弊社追加データ

・行動情報(位置情報)・個人属性データ・アプリ利用データ・人口・地価などの公開済み動態情報

行動分析基盤SilentLog Analytics

行動情報データプラットフォーム

行動情報

行動情報

データクレンジング

機械学習 / オンライン学習

推定結果

可視化地図グラフ

SilentLog SDK

アクション人工知能で行動を分析行動収集

Page 33: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

33

SilentLog Analytics行動情報を可視化。高い視点から人や物の動きが把握できます

同地区のヒートマップ表示

同地区の流入元表示

Page 34: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

SilentLog SDK導入事例株式会社イード様e燃費アプリ

Page 35: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

Two Problems in Data Science:

Skills Tools

Commitment to Data Science Educationbit.ly/introtokyoR

Is it Production READY?

Page 36: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

© 2016 IBM Corporation36

IBM DATA SCIENCE EXPERIENCEA L L Y O U R T O O L S I N O N E P L A C E

Data Science Experience (DSX)は、データサイエンティスト・データエンジニアが必要とするデータ分析環境を1つにして提供をします。

Page 37: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

© 2016 IBM Corporation37

ビルドインされた、簡単なコースから、アドバンスなチュートリアル

まで

学ぶ

オープンソールや付加価値機能を統合した

データ分析ツール

作る

コラボレーションのためのコミュニティーとソーシャル機能

共創

IBM DATA SCIENCE EXPERIENCEA L L Y O U R T O O L S I N O N E P L A C E

Page 38: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

© 2016 IBM Corporation38

Data Science Experience

コミュニティー オープンソース 付加価値機能- チュートリアル、データセットの探索- データサイエンティストとの共創- 質問をする – Ask Question- 情報を収集する(記事、論文、技術情報)- プロジェクトのフォークと共有

- Scala/Python/R/SQL- Jupyter / Zeppelin* Notebooks- RStudio IDE / Shinyアプリケーション- Apache Spark - その他のライブラリ

- データシェーピング/パイプラインUI *- 自動データ準備(Auto-data prep)*- 自動モデリング(Auto-modeling)*- 高度なビジュアライゼーション*- Model管理とデプロイメント*- Well documented Model APIs*

IBM DATA SCIENCE EXPERIENCEA L L Y O U R T O O L S I N O N E P L A C E

Page 39: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

© 2016 IBM Corporation39

Shaping(シェーピング):•Sparkling.Data APIs: Jupyterノートブック(Python/Scala)•チュートリアル(Python and Scala)RStudio:•Rstudio(オープンソースサーバ):16GB Memory/5GB領域•Shiny: 分析WEBアプリの作成•SparkR: Sparkサービスとの連携(Spark as a Service)

プロジェクト:•共創(コラボ): プロジェクトへのユーザ追加•ノートブックの共有/コネクション/ファイル管理スケジューリング:•CRON•スケジューリングUI: スケジュールされたノートブック一覧、 前回/次回実行予定、ステータス(初期版は機能制限あり)

コミュニティー:• Analytics Exchange: コミュニティーによるオープン・データとノートブック共有• ソーシャルメディアによる共有機能• ノートブックとデータのプリビュー機能• ブログ(DSXブログ含む)• チュートリアル (e.g., Big Data University)

ノートブック:Jupyterノートブック言語: Scala/Python/Rライブラリ: Open Source and IBM (Brunel/Prescriptive)Import from File (*.ipynb)/URL/TemplatesURLによる共有

IBM DATA SCIENCE EXPERIENCEA L L Y O U R T O O L S I N O N E P L A C E

Page 40: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

© 2016 IBM Corporation40

datascience.ibm.comオープンβのリストを受け付けています

Page 41: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

© 2016 IBM Corporation41

開催期間 :2016年8月1日~9月30日※開催期間の変更がある場合もあります。

日本アイ・ビー・エム株式会社

懸賞金: 1位 30万 2位 20万 3位 10万

Page 42: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

© 2016 IBM Corporation42

法人向け

個人向け

名刺を企業の資産に変える

Page 43: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

© 2016 IBM Corporation43

※本コンペで扱う名刺画像に記載されている内容は実在の団体・個人とは一切関係ございません。

Page 44: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

© 2016 IBM Corporation44

名刺をスキャン年間1憶枚以上の名刺が、

オペレーターの入力によりデータ化されている

アプリケーションで活用

名刺の検索・閲覧・編集

お客様

Page 45: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

© 2016 IBM Corporation45

名刺をスキャン年間1憶枚以上の名刺が、

オペレーターの入力によりデータ化されている

アプリケーションで活用

名刺の検索・閲覧・編集

お客様

AI

Page 46: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

© 2016 IBM Corporation46

数千枚の名刺画像を使って、名刺の項目を推定するアルゴリズムを募集します。

Page 47: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

© 2016 IBM Corporation47

ビルドインされた、簡単なコースから、アドバンスなチュートリアル

まで

学ぶ

オープンソールや付加価値機能を統合した

データ分析ツール

作る

コラボレーションのためのコミュニティーとソーシャル機能

共創

IBM DATA SCIENCE EXPERIENCEA L L Y O U R T O O L S I N O N E P L A C E

datascience.ibm.com

Page 48: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

© 2016 IBM Corporation48

ご清聴ありがとうございました。

Page 49: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

補足資料

49

Page 50: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

DataScientistWorkbenchハンズオン~始めに編~

Page 51: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

本日の内容

▪ ユーザー登録▪ Data Scientist Workbench▪ (オプション)IBM Bluemix

▪ Data Scientist Workbenchとは▪ ハンズオン(pyspark)

Page 52: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

本日の内容

▪ ユーザー登録▪ Data Scientist Workbench▪ (オプション)IBM Bluemix

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

Page 53: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

DataScientistWorkbenchの登録

• https://datascientistworkbench.com/

Page 54: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

IBM Bluemixへの登録

Page 55: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

IBM Bluemixへの登録

Page 56: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

IBM Bluemixへの登録

Page 57: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

本日の内容

▪ ユーザー登録▪ Data Scientist Workbench▪ (オプション)IBM Bluemix

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

Page 58: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

データ分析のプロセス

データ収集

クレンジング

モデリング・データ加工

アクション

レポーティング DataScientistWorkbenchで対応可能

Page 59: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

Data Science Workbench© Copyright IBM Corp. 2016

特徴

• Spark環境構築済み

• Sparkを利用するためのプログラミング環境も用意

• インタラクティブかつ繰り返し実行可能

• コミュニティを通した知識の共有

• 継続的な機能追加

• 誰でも無料

“Making open source data science easy”

Page 60: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

ログイン後の画面

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

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

①データ投入 ②データ整形

③データ整形と分析の実行

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

Page 61: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

ツール実行時の画面

Open Refine

Jupyter

Knowledge blog, BDU

機能追加のための投票

seahouse

Apache Zeppelin

アイコン化

My DataOpen Data

RStudio

Page 62: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

①データ投入「My Data」分析のためのデータの投入を行う

現在のディレクトリ構成

新規ディレクトリ作成

データのアップロード

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

Page 63: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

②データ整形「OpenRefine」

• Googleで開発されたGoogle Refineがベース

• 2010年11月にイニシャルリリース、2012年10月にOpenRefineとしてオープンソース化

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

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

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

Page 64: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

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

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

※日本語データへの対応はされていません。

Page 65: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

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

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

データのブレに対して

GUIでクレンジングが可能

Page 66: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

「RStudio」

• Rを使いやすくするのための統合開発環境

• Rユーザーのデファクトスタンダード

• Data Scientist WorkbenchではBig Rも実行可能• IBMの提供するライブラリ

• スケーラブルかつ高パフォーマンス

• Sparkに統合予定のSystemML

Page 67: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

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

Sparkと連携

BigRと連携済み、利用可能

https://www.ibm.com/support/knowledgecenter/SSPT3X_4.1.0/com.ibm.swg.im.infosphere.biginsights.ref.doc/doc/reference_icnav.html

Page 68: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

「seahouse」

• DeepSense.ioにより2016年にver.1.0• Sparkアプリケーションを作成するためのプラットフォーム

• WebGUIからアイコンを配置して機械学習やETLのプログラミング可能

Page 69: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

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

•紙と鉛筆• 紙と鉛筆は、これまで長い間、科学

者がメモや図面を通して進捗状況を文書化するための重要なツールである:

• 表現力

• 累積した情報

• コラボレーション

•Notebooks• Notebooks は、これまでの紙と鉛

筆のデジタル版であり、再現性のある分析と文書化を可能にする:

• マークダウンとグラフ化

• 反復探索

• 共有が容易

Page 70: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

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

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

• ノートブック• WebブラウザからのGUI操作可能

• コード実行、コメント記述、グラフの描画を実行可能

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

Page 71: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

③データ整形と分析の実行「Zeppelin Notebook」• リリース

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

• ノートブック• WebブラウザからのGUI操作可能

• コード実行、コメント記述、グラフの描画を実行可能

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

Page 72: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

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

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

<参考>Jupyter 操作画面

Page 73: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

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

コメント

コード(実行中)

コード(未実行)

コメント

セルの種類

Page 74: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

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

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

セルの削除

セルの順番入れ替え

セルの実行

セルの追加

Page 75: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

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

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

Page 76: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

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

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

Page 77: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

<参考>コード補完

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

Page 78: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

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

Page 79: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

<参考>

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

Page 80: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

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

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

Page 81: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

フィードバックと投票

実現してほしいアイデアの投稿、投票が可能

Page 82: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

<参考>日本語化とデータセンター

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

• 言語を「日本語」にすることでUIの日本語化

• Tokyo データセンターも準備中

香港がもっとも近い場所です(推奨)

Page 83: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

非常に多くの機能がありますが

触りながら覚えて、育てていきましょう

Page 84: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

本日の内容

▪ ユーザー登録▪ Data Scientist Workbench▪ (オプション)IBM Bluemix

▪ Sparkとは▪ Data Scientist Workbenchとは▪ ハンズオン(pyspark)

Page 85: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

ハンズオンの内容

ハンズオン:JupyterでMLLibでクラスタリングハンズオン:IBM Bluemixとの連携・移行

Page 86: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

ハンズオン:Spark MLLibでクラスタリングJupyterでSpark MLLibを使った機械学習プログラムを体験します。実行にはJupyterでPythonによるプログラムを実行します。

手順1. シェアされているNotebookとデータを取得します。

Notebook> https://ibm.biz/BdrDndデータ> https://ibm.biz/BdrDnD

2. Jupyter画面および「マイ・データ」画面でファイルが取得されていることを確認します。

3. Notebookを実行してK-Meansによるクラスタリングを実行します。

Page 87: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

ハンズオン:Bluemixとの連携・移行IBM BluemixにもSpark環境が「Spark as a Service」として用意されています。DataScientistWorkbenchと比較して以下の利点があります。

• Enterprise向けのよりパワフルな実行環境と占有環境• アプリケーション(spark-submit)の実行可能• Bluemix上のサービスとの連携

手順1. DSWBからJupyterノートブックのダウンロード2. Spark as a Serviceからノートブックの読み込みと実行

Page 88: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

“Apache Spark”

- Sparkサービス- Jupyter

(Python・Scala・Rランタイム)- サンプルコード

- Objectストレージ

BluemixのApache Spark(Spark as a Service)

に含まれる内容

ストレージ(swiftベース)

Sparkサービス(Jupyter)

Page 89: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

<補足>ハンズオン「Download」を選択してipynbファイルのシェアを実行

Page 90: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

<補足>ハンズオン「Bluemix Spark」からipynbファイルを読み込み

BluemixではNotebookの実行とバッチ実行モードが選択可能今回はNotebookを選択

Create NotebookでFrom Fileを選択

Page 91: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

<参考> Spark as a Service画面

データの投入およびノートブックの共有可能DSWB同様

Jupyter利用可能

Page 92: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

<参考>リファレンス• 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

* 日本語版も存在しますが現在最新バージョンではなく未翻訳があります* 上記は1.6.1ですがDSWは1.5.1となります

Page 93: データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~

ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報提供の目的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結果を生むものでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のまま」提供され、明示または暗示にかかわらずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使用によって、あるいはその他の関連によって、いかなる損害が生じた場合も、IBMは責任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更することを意図したものでもなく、またそのような結果を生むものでもありません。

本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを暗示するものではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決定権をもっていつでも変更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。本講演資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはその他の結果が生じると述べる、または暗示することを意図したものでも、またそのような結果を生むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。

記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示されたものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。

IBM、IBM ロゴ、ibm.com、[以下当該情報に関連し商標リスト中に掲載されたIBMブランドやIBMの製品名称があれば追加する]は、 世界の多くの国で登録された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の米国およびその他の国における商標です。