SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
Jubakit の紹介
Kenichi Maehashi
Jubatus Casual Talks #4 June 18, 2016
INTRODUCTION TO JUBAKIT
Jubakit とは
▸ Jubatus を利⽤したデータ分析をもっと便利にする Python
モジュール
▸ scikit-learn との連携や外部データソースの取り込みなど
が簡単に⾏える
▸ Python 2.6 以降, 3.2 以降をサポート
▸ Jubatus 0.8.0 以降で利⽤可能
INTRODUCTION TO JUBAKIT
モチベーション
▸ 機械学習を使⽤したデータ分析では、チューニングと精度
測定を繰り返し⾏うことが⼀般的
▸ チューニングの要素は多岐に渡る
▸ データ前処理、特徴選択、特徴抽出、機械学習アルゴリズム、ハイパーパラメタ、…
様々なチューニングのバリエーションを
迅速に試⾏するためのフレームワークが必要
INTRODUCTION TO JUBAKIT
Jubakit のゴール
▸ データ分析の現場でよく⽤いられる scikit-learn の機能を Jubatus で
も使えるようにすることで、チューニングフェーズの作業を加速する
▸ クロスバリデーションや精度指標の算出など、学習モデルの評価に役
⽴つ機能
▸ 組み込みデータセットや⼈⼯データの⽣成など、Jubatus を使って
みる (動作を検証する) 際に役⽴つ機能
▸ Jubatus のアーキテクチャ (RPC 通信, プロセス起動, 設定ファイル,
etc.) を隠蔽することで、チューニングに集中できる環境 (インタフェー
ス) を提供する
INTRODUCTION TO JUBAKIT
Jubatus を使ったデータ分析: これまで
1. Jubatus サーバを起動
2. Jubatus クライアントを実⾏
3. 結果を集計して精度指標を算出
4. チューニングを⾏う
‣ Jubatus クライアントを修正
‣ Jubatus 設定ファイル (JSON) を修正
5. 最初に戻る
検証ごとにサーバの起動/終了が必要
精度指標の算出関数は別途実装が必要
データ前処理・特徴抽出のチューニング
アルゴリズム・ハイパーパラメタ・特徴抽出のチューニング
チューニング対象のファイルが複数あるため
記述が分散し、管理が⾯倒
RPC 接続のためのコードが必要
INTRODUCTION TO JUBAKIT
Jubatus を使ったデータ分析: Jubakit の場合
1. Jubakit を利⽤したスクリプトを実⾏
2. 結果を集計して精度指標を算出
3. チューニングを⾏う
‣ スクリプトを修正
4. 最初に戻る すべてのチューニング要素が
スクリプトに集約されるため
管理すべきファイルは 1 つだけ
Jubatus サーバの起動・終了は
⾃動的に⾏われる
精度指標の算出に
scikit-learn 組み込みの関数を
直接活⽤できる
RPC を意識しない
シンプルなコードで書ける
INTRODUCTION TO JUBAKIT
サンプルコード (CSV ファイルから異常検知)
dataset	=	Dataset(CSVLoader(“dataset.csv”))	
service	=	Anomaly.run(Config())	
for	result	in	service.add(dataset):	
				print(result)
Jubakit の設計コンセプト
シンプルなコードで動く: よく使う設定がデフォルト値として設定済み
空気を読む: データ型の⾃動推定を⾏う
⾼いカスタマイズ性: 細かい条件を指定することも可能
INTRODUCTION TO JUBAKIT
サンプルコード (CSV ファイルから異常検知)
dataset	=	Dataset(CSVLoader(“dataset.csv”))	
service	=	Anomaly.run(Config())	
for	result	in	service.add(dataset):	
				print(result)
CSV ファイルからデータセットを定義する
データの型は⾃動推定
(⼿動で指定することも可能)
INTRODUCTION TO JUBAKIT
サンプルコード (CSV ファイルから異常検知)
dataset	=	Dataset(CSVLoader(“dataset.csv”))	
service	=	Anomaly.run(Config())	
for	result	in	service.add(dataset):	
				print(result)
異常検知エンジンを起動
ハイパーパラメタは⾃動設定
(⼿動で指定することも可能)
INTRODUCTION TO JUBAKIT
サンプルコード (CSV ファイルから異常検知)
dataset	=	Dataset(CSVLoader(“dataset.csv”))	
service	=	Anomaly.run(Config())	
for	result	in	service.add(dataset):	
				print(result)
各レコードの異常度スコアを
算出して表⽰
INTRODUCTION TO JUBAKIT
Jubakit のアーキテクチャ
LOADER
ローダ
DATASET
データセット
SCHEMA
スキーマ
SERVICE
サービス
CONFIG
設定
CSV
RDBMS
TWITTER
様々なデータソースから
対象のデータを読み込む
ローダから読み込まれた
各データの型と意味を定義する
機械学習の機能を提供する
(分類, 異常検知, ETC.)
NUMPY
SCIPY
サービスに必要な
ハイパーパラメタを定義する
…
読み
込み
学習・
分析
学習・分析の対象
となるデータを表す
(Estimator)
INTRODUCTION TO JUBAKIT
Loader - ローダ (1/2)
▸ よく使うデータ構造の Loader はビルトイン
クラス 機能
LineBasedStreamLoader /
LineBasedFileLoader
⾏指向のストリーム/ファイルの読み込み
ArrayLoader /
ZipArrayLoader
配列 (または NumPy Array) データの読み込み
SparseMatrixLoader SciPy 2-D 疎⾏列データの読み込み
CSVLoader CSV ファイルの読み込み
TwitterStreamLoader Twitter ストリームの読み込み
MergeChainLoader 複数の Loader のデータを結合して読み込み
ValueMapChainLoader 他の Loader の値を写像して読み込み
INTRODUCTION TO JUBAKIT
Loader - ローダ (2/2)
▸ 組み込みでサポートされていないデータソースを利⽤した
い場合は、BaseLoader を継承したカスタム Loader クラ
スを実装する
▸ 実装はとても簡単. 1 レコードずつデータを yield する
rows() メソッドを実装するだけ
‣ Loader から読み込まれたデータに対する後処理(窓処理など)
を⾏いたい場合は、既存の Loader クラスを継承して
preprocess() メソッドを実装する
INTRODUCTION TO JUBAKIT
Schema - スキーマ
▸ Loader から読み込まれた値の型と意味を定義する
名前 型/意味
STRING ⽂字列データ
NUMBER 数値データ
BINARY バイナリデータ
LABEL 正解ラベル (Classifier のみ)
AUTO
Loader から⼊⼒されたデータ型をそのまま使⽤する
(CSV Loader の場合は全て⽂字列型になるため注意)
INFER データ型をデータの内容から⾃動推定する
IGNORE そのデータを無視する
INTRODUCTION TO JUBAKIT
Schema - スキーマの定義例
schema = Schema({
‘Category’: Schema.LABEL,
‘Title’: Schema.STRING,
‘Year’: Schema.NUMBER
}, Schema.IGNORE)
Category Title Year Country Director
SF スターウォーズ Ep1 1999 USA G. Lucas
アニメ 千と千尋の神隠し 2001 Japan H. Miyazaki
ロマンス タイタニック 1997 USA J. Cameron
SF ターミネーター 1991 USA J. Cameron
… … … … …
分類ラベル ⽂字列データ 数値データ 無視 無視
例: 映画データベース
フォールバック型
(明⽰的に指定されなかった
 すべてのデータ項⽬に対する定義)
INTRODUCTION TO JUBAKIT
Service - サービス
▸ Dataset を受け取って学習・分析を⾏い、結果を返却する
▸ scikit-learn の Estimator に相当 (ただし BaseEstimator は継承していません)
▸ 裏で Jubatus サーバが起動する
▸ 現在は Classifier (分類), Anomaly (異常検知), Weight (特
徴抽出結果の表⽰) の 3 種類のサービスが提供されている
INTRODUCTION TO JUBAKIT
インストール
$ pip install jubakit
基本的な機能は jubakit だけでも利⽤できますが、
scikit-learn をインストールすることで、
精度算出などの⾼度な機能も利⽤できるようになります。
$ pip install numpy spicy scikit-learn
Jubakit のインストール
※Jubatus は別途インストールしておく必要があります。
※可能な場合は pip ではなくバイナリパッケージ (yum/apt-get)
 でのインストールをオススメします。
INTRODUCTION TO JUBAKIT
デモ: 実際にデータを分析してみよう
▸ Kaggle の Titanic サンプルを解いてみます
▸ https://www.kaggle.com/c/titanic
▸ https://github.com/kmaehashi/jubakit-tutorial-titanic
INTRODUCTION TO JUBAKIT
サンプルスクリプト集
▸ example ディレクトリにサンプルスクリプトがあります
▸ ⼀部のサンプルは要 scikit-learn
▸ デモ
▸ Twitter ストリームの分析
▸ ハイパーパラメタのバリエーション⾃動検証
INTRODUCTION TO JUBAKIT
プルリクお待ちしてます!
▸ Jubakit を使ったサンプルスクリプト
▸ カスタム Loader
▸ RDBMS とか MQ とか AWS SQS とか Kinesis とか
▸ 他の Service (Recommender, NN, …) への対応
▸ etc.

Weitere ähnliche Inhalte

Was ist angesagt?

jubarecommenderの紹介
jubarecommenderの紹介jubarecommenderの紹介
jubarecommenderの紹介JubatusOfficial
 
Jubatus分類器の活用テクニック
Jubatus分類器の活用テクニックJubatus分類器の活用テクニック
Jubatus分類器の活用テクニックJubatusOfficial
 
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化JubatusOfficial
 
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」Yasuyuki Sugai
 
Jubatus Python特徴抽出プラグイン
Jubatus Python特徴抽出プラグインJubatus Python特徴抽出プラグイン
Jubatus Python特徴抽出プラグインTetsuya Shioda
 
SensorBeeでChainerをプラグインとして使う
SensorBeeでChainerをプラグインとして使うSensorBeeでChainerをプラグインとして使う
SensorBeeでChainerをプラグインとして使うDaisuke Tanaka
 
「深層学習」の本に出てきたデータセット達
「深層学習」の本に出てきたデータセット達「深層学習」の本に出てきたデータセット達
「深層学習」の本に出てきたデータセット達Hiromasa Ohashi
 
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)Kotaro Nakayama
 
"アレ"からJubatusを使う
"アレ"からJubatusを使う"アレ"からJubatusを使う
"アレ"からJubatusを使うJubatusOfficial
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門Takuji Tahara
 
ストリーム処理とSensorBee
ストリーム処理とSensorBeeストリーム処理とSensorBee
ストリーム処理とSensorBeeDaisuke Tanaka
 
Kerasで深層学習を実践する
Kerasで深層学習を実践するKerasで深層学習を実践する
Kerasで深層学習を実践するKazuaki Tanida
 
ChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なことChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なことRetrieva inc.
 
みんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extrasみんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extrasTakuji Tahara
 
2013.07.15 はじパタlt scikit-learnで始める機械学習
2013.07.15 はじパタlt scikit-learnで始める機械学習2013.07.15 はじパタlt scikit-learnで始める機械学習
2013.07.15 はじパタlt scikit-learnで始める機械学習Motoya Wakiyama
 
[第2版]Python機械学習プログラミング 第9章
[第2版]Python機械学習プログラミング 第9章[第2版]Python機械学習プログラミング 第9章
[第2版]Python機械学習プログラミング 第9章Haruki Eguchi
 
Chainerで学ぶdeep learning
Chainerで学ぶdeep learningChainerで学ぶdeep learning
Chainerで学ぶdeep learningRetrieva inc.
 

Was ist angesagt? (20)

jubarecommenderの紹介
jubarecommenderの紹介jubarecommenderの紹介
jubarecommenderの紹介
 
Jubatus分類器の活用テクニック
Jubatus分類器の活用テクニックJubatus分類器の活用テクニック
Jubatus分類器の活用テクニック
 
jubabanditの紹介
jubabanditの紹介jubabanditの紹介
jubabanditの紹介
 
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
 
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
 
Jubatus Python特徴抽出プラグイン
Jubatus Python特徴抽出プラグインJubatus Python特徴抽出プラグイン
Jubatus Python特徴抽出プラグイン
 
SensorBeeでChainerをプラグインとして使う
SensorBeeでChainerをプラグインとして使うSensorBeeでChainerをプラグインとして使う
SensorBeeでChainerをプラグインとして使う
 
「深層学習」の本に出てきたデータセット達
「深層学習」の本に出てきたデータセット達「深層学習」の本に出てきたデータセット達
「深層学習」の本に出てきたデータセット達
 
SensorBeeの紹介
SensorBeeの紹介SensorBeeの紹介
SensorBeeの紹介
 
SensorBeeのご紹介
SensorBeeのご紹介SensorBeeのご紹介
SensorBeeのご紹介
 
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
 
"アレ"からJubatusを使う
"アレ"からJubatusを使う"アレ"からJubatusを使う
"アレ"からJubatusを使う
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 
ストリーム処理とSensorBee
ストリーム処理とSensorBeeストリーム処理とSensorBee
ストリーム処理とSensorBee
 
Kerasで深層学習を実践する
Kerasで深層学習を実践するKerasで深層学習を実践する
Kerasで深層学習を実践する
 
ChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なことChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なこと
 
みんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extrasみんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extras
 
2013.07.15 はじパタlt scikit-learnで始める機械学習
2013.07.15 はじパタlt scikit-learnで始める機械学習2013.07.15 はじパタlt scikit-learnで始める機械学習
2013.07.15 はじパタlt scikit-learnで始める機械学習
 
[第2版]Python機械学習プログラミング 第9章
[第2版]Python機械学習プログラミング 第9章[第2版]Python機械学習プログラミング 第9章
[第2版]Python機械学習プログラミング 第9章
 
Chainerで学ぶdeep learning
Chainerで学ぶdeep learningChainerで学ぶdeep learning
Chainerで学ぶdeep learning
 

Andere mochten auch

Jubatus 新機能ハイライト
Jubatus 新機能ハイライトJubatus 新機能ハイライト
Jubatus 新機能ハイライトJubatusOfficial
 
Isolation forest
Isolation forestIsolation forest
Isolation forestkataware
 
もくもく成果 IMAMASU
もくもく成果 IMAMASUもくもく成果 IMAMASU
もくもく成果 IMAMASUJubatusOfficial
 
もくもくしたこと
もくもくしたこともくもくしたこと
もくもくしたことk_oi
 
Jubatusハンズオン 機械学習はじめてみた
Jubatusハンズオン 機械学習はじめてみたJubatusハンズオン 機械学習はじめてみた
Jubatusハンズオン 機械学習はじめてみたJubatusOfficial
 
gRPCをちょこっと調べた話
gRPCをちょこっと調べた話gRPCをちょこっと調べた話
gRPCをちょこっと調べた話Shuzo Kashihara
 
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用JubatusOfficial
 
単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)JubatusOfficial
 
Jubatus解説本の紹介
Jubatus解説本の紹介Jubatus解説本の紹介
Jubatus解説本の紹介JubatusOfficial
 
Python 特徴抽出プラグイン
Python 特徴抽出プラグインPython 特徴抽出プラグイン
Python 特徴抽出プラグインJubatusOfficial
 
小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみた小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみたJubatusOfficial
 
発言小町からのプロファイリング
発言小町からのプロファイリング発言小町からのプロファイリング
発言小町からのプロファイリングJubatusOfficial
 
かまってちゃん小町
かまってちゃん小町かまってちゃん小町
かまってちゃん小町JubatusOfficial
 
新聞から今年の漢字を予測する
新聞から今年の漢字を予測する新聞から今年の漢字を予測する
新聞から今年の漢字を予測するJubatusOfficial
 
地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAIJubatusOfficial
 
FIT2012招待講演「異常検知技術のビジネス応用最前線」
FIT2012招待講演「異常検知技術のビジネス応用最前線」FIT2012招待講演「異常検知技術のビジネス応用最前線」
FIT2012招待講演「異常検知技術のビジネス応用最前線」Shohei Hido
 

Andere mochten auch (20)

Jubatus 新機能ハイライト
Jubatus 新機能ハイライトJubatus 新機能ハイライト
Jubatus 新機能ハイライト
 
Isolation forest
Isolation forestIsolation forest
Isolation forest
 
もくもく成果 IMAMASU
もくもく成果 IMAMASUもくもく成果 IMAMASU
もくもく成果 IMAMASU
 
もくもくしたこと
もくもくしたこともくもくしたこと
もくもくしたこと
 
Jubatusハンズオン 機械学習はじめてみた
Jubatusハンズオン 機械学習はじめてみたJubatusハンズオン 機械学習はじめてみた
Jubatusハンズオン 機械学習はじめてみた
 
gRPCをちょこっと調べた話
gRPCをちょこっと調べた話gRPCをちょこっと調べた話
gRPCをちょこっと調べた話
 
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
 
単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)
 
新機能紹介 1.0.6
新機能紹介 1.0.6新機能紹介 1.0.6
新機能紹介 1.0.6
 
Jubatus解説本の紹介
Jubatus解説本の紹介Jubatus解説本の紹介
Jubatus解説本の紹介
 
Python 特徴抽出プラグイン
Python 特徴抽出プラグインPython 特徴抽出プラグイン
Python 特徴抽出プラグイン
 
小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみた小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみた
 
発言小町からのプロファイリング
発言小町からのプロファイリング発言小町からのプロファイリング
発言小町からのプロファイリング
 
かまってちゃん小町
かまってちゃん小町かまってちゃん小町
かまってちゃん小町
 
新聞から今年の漢字を予測する
新聞から今年の漢字を予測する新聞から今年の漢字を予測する
新聞から今年の漢字を予測する
 
銀座のママ
銀座のママ銀座のママ
銀座のママ
 
JUBARHYME
JUBARHYMEJUBARHYME
JUBARHYME
 
小町の溜息
小町の溜息小町の溜息
小町の溜息
 
地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI
 
FIT2012招待講演「異常検知技術のビジネス応用最前線」
FIT2012招待講演「異常検知技術のビジネス応用最前線」FIT2012招待講演「異常検知技術のビジネス応用最前線」
FIT2012招待講演「異常検知技術のビジネス応用最前線」
 

Ähnlich wie Jubakit の紹介

Pythonによる機械学習入門 ~Deep Learningに挑戦~
Pythonによる機械学習入門 ~Deep Learningに挑戦~Pythonによる機械学習入門 ~Deep Learningに挑戦~
Pythonによる機械学習入門 ~Deep Learningに挑戦~Yasutomo Kawanishi
 
セミナー資料「STAR-CCM+ クラウド活用ハンズオンセミナー with Rescale」
セミナー資料「STAR-CCM+ クラウド活用ハンズオンセミナー with Rescale」セミナー資料「STAR-CCM+ クラウド活用ハンズオンセミナー with Rescale」
セミナー資料「STAR-CCM+ クラウド活用ハンズオンセミナー with Rescale」Rescale Japan株式会社
 
機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編Daiyu Hatakeyama
 
20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudyTakahiro Iwase
 
QGISセミナー初級・実践編(V2.4)
QGISセミナー初級・実践編(V2.4)QGISセミナー初級・実践編(V2.4)
QGISセミナー初級・実践編(V2.4)IWASAKI NOBUSUKE
 
QGISセミナー初級編 ~QGISの使い方・実践編~ Ver. 2.4版
QGISセミナー初級編 ~QGISの使い方・実践編~ Ver. 2.4版QGISセミナー初級編 ~QGISの使い方・実践編~ Ver. 2.4版
QGISセミナー初級編 ~QGISの使い方・実践編~ Ver. 2.4版FOSS4G_MEXT
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624Yusuke Suzuki
 
第5回 cogbot勉強会!
第5回 cogbot勉強会!第5回 cogbot勉強会!
第5回 cogbot勉強会!貴志 上坂
 
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」Rescale Japan株式会社
 
QGISセミナー・中級編 Ver. 2.4版
QGISセミナー・中級編 Ver. 2.4版QGISセミナー・中級編 Ver. 2.4版
QGISセミナー・中級編 Ver. 2.4版FOSS4G_MEXT
 
QGISセミナー中級編(V2.4)
QGISセミナー中級編(V2.4)QGISセミナー中級編(V2.4)
QGISセミナー中級編(V2.4)IWASAKI NOBUSUKE
 
131031 foss4 g_tokyo_grass_handson_presentation
131031 foss4 g_tokyo_grass_handson_presentation131031 foss4 g_tokyo_grass_handson_presentation
131031 foss4 g_tokyo_grass_handson_presentationTakayuki Nuimura
 
Jubatus: Jubakitでもっと楽をしよう
Jubatus: Jubakitでもっと楽をしようJubatus: Jubakitでもっと楽をしよう
Jubatus: Jubakitでもっと楽をしようTetsuya Shioda
 
[data analytics showcase] B11: ビッグデータを高速に検索・分析する「Elasticsearch」~新プラグイン「Graph」...
[data analytics showcase] B11: ビッグデータを高速に検索・分析する「Elasticsearch」~新プラグイン「Graph」...[data analytics showcase] B11: ビッグデータを高速に検索・分析する「Elasticsearch」~新プラグイン「Graph」...
[data analytics showcase] B11: ビッグデータを高速に検索・分析する「Elasticsearch」~新プラグイン「Graph」...Insight Technology, Inc.
 
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~Yasutomo Kawanishi
 
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009Ryota Watabe
 
Vertica 7.2.2 新機能
Vertica 7.2.2 新機能Vertica 7.2.2 新機能
Vertica 7.2.2 新機能Kaito Tono
 
PostgreSQL v9.5の新機能~CustomScan/Join Interface
PostgreSQL v9.5の新機能~CustomScan/Join InterfacePostgreSQL v9.5の新機能~CustomScan/Join Interface
PostgreSQL v9.5の新機能~CustomScan/Join InterfaceKohei KaiGai
 

Ähnlich wie Jubakit の紹介 (20)

Pythonによる機械学習入門 ~Deep Learningに挑戦~
Pythonによる機械学習入門 ~Deep Learningに挑戦~Pythonによる機械学習入門 ~Deep Learningに挑戦~
Pythonによる機械学習入門 ~Deep Learningに挑戦~
 
セミナー資料「STAR-CCM+ クラウド活用ハンズオンセミナー with Rescale」
セミナー資料「STAR-CCM+ クラウド活用ハンズオンセミナー with Rescale」セミナー資料「STAR-CCM+ クラウド活用ハンズオンセミナー with Rescale」
セミナー資料「STAR-CCM+ クラウド活用ハンズオンセミナー with Rescale」
 
機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編
 
20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy
 
QGISセミナー初級・実践編(V2.4)
QGISセミナー初級・実践編(V2.4)QGISセミナー初級・実践編(V2.4)
QGISセミナー初級・実践編(V2.4)
 
QGISセミナー初級編 ~QGISの使い方・実践編~ Ver. 2.4版
QGISセミナー初級編 ~QGISの使い方・実践編~ Ver. 2.4版QGISセミナー初級編 ~QGISの使い方・実践編~ Ver. 2.4版
QGISセミナー初級編 ~QGISの使い方・実践編~ Ver. 2.4版
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
 
第5回 cogbot勉強会!
第5回 cogbot勉強会!第5回 cogbot勉強会!
第5回 cogbot勉強会!
 
SpinnakerとKayentaで 高速・安全なデプロイ!
SpinnakerとKayentaで 高速・安全なデプロイ!SpinnakerとKayentaで 高速・安全なデプロイ!
SpinnakerとKayentaで 高速・安全なデプロイ!
 
Cmdevio2015 devday-g-3
Cmdevio2015 devday-g-3Cmdevio2015 devday-g-3
Cmdevio2015 devday-g-3
 
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」
セミナー資料 2017年1月27日開催「クラウドCAEフェスティバル」
 
QGISセミナー・中級編 Ver. 2.4版
QGISセミナー・中級編 Ver. 2.4版QGISセミナー・中級編 Ver. 2.4版
QGISセミナー・中級編 Ver. 2.4版
 
QGISセミナー中級編(V2.4)
QGISセミナー中級編(V2.4)QGISセミナー中級編(V2.4)
QGISセミナー中級編(V2.4)
 
131031 foss4 g_tokyo_grass_handson_presentation
131031 foss4 g_tokyo_grass_handson_presentation131031 foss4 g_tokyo_grass_handson_presentation
131031 foss4 g_tokyo_grass_handson_presentation
 
Jubatus: Jubakitでもっと楽をしよう
Jubatus: Jubakitでもっと楽をしようJubatus: Jubakitでもっと楽をしよう
Jubatus: Jubakitでもっと楽をしよう
 
[data analytics showcase] B11: ビッグデータを高速に検索・分析する「Elasticsearch」~新プラグイン「Graph」...
[data analytics showcase] B11: ビッグデータを高速に検索・分析する「Elasticsearch」~新プラグイン「Graph」...[data analytics showcase] B11: ビッグデータを高速に検索・分析する「Elasticsearch」~新プラグイン「Graph」...
[data analytics showcase] B11: ビッグデータを高速に検索・分析する「Elasticsearch」~新プラグイン「Graph」...
 
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
 
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
 
Vertica 7.2.2 新機能
Vertica 7.2.2 新機能Vertica 7.2.2 新機能
Vertica 7.2.2 新機能
 
PostgreSQL v9.5の新機能~CustomScan/Join Interface
PostgreSQL v9.5の新機能~CustomScan/Join InterfacePostgreSQL v9.5の新機能~CustomScan/Join Interface
PostgreSQL v9.5の新機能~CustomScan/Join Interface
 

Jubakit の紹介

  • 1. Jubakit の紹介 Kenichi Maehashi Jubatus Casual Talks #4 June 18, 2016
  • 2. INTRODUCTION TO JUBAKIT Jubakit とは ▸ Jubatus を利⽤したデータ分析をもっと便利にする Python モジュール ▸ scikit-learn との連携や外部データソースの取り込みなど が簡単に⾏える ▸ Python 2.6 以降, 3.2 以降をサポート ▸ Jubatus 0.8.0 以降で利⽤可能
  • 3. INTRODUCTION TO JUBAKIT モチベーション ▸ 機械学習を使⽤したデータ分析では、チューニングと精度 測定を繰り返し⾏うことが⼀般的 ▸ チューニングの要素は多岐に渡る ▸ データ前処理、特徴選択、特徴抽出、機械学習アルゴリズム、ハイパーパラメタ、… 様々なチューニングのバリエーションを 迅速に試⾏するためのフレームワークが必要
  • 4. INTRODUCTION TO JUBAKIT Jubakit のゴール ▸ データ分析の現場でよく⽤いられる scikit-learn の機能を Jubatus で も使えるようにすることで、チューニングフェーズの作業を加速する ▸ クロスバリデーションや精度指標の算出など、学習モデルの評価に役 ⽴つ機能 ▸ 組み込みデータセットや⼈⼯データの⽣成など、Jubatus を使って みる (動作を検証する) 際に役⽴つ機能 ▸ Jubatus のアーキテクチャ (RPC 通信, プロセス起動, 設定ファイル, etc.) を隠蔽することで、チューニングに集中できる環境 (インタフェー ス) を提供する
  • 5. INTRODUCTION TO JUBAKIT Jubatus を使ったデータ分析: これまで 1. Jubatus サーバを起動 2. Jubatus クライアントを実⾏ 3. 結果を集計して精度指標を算出 4. チューニングを⾏う ‣ Jubatus クライアントを修正 ‣ Jubatus 設定ファイル (JSON) を修正 5. 最初に戻る 検証ごとにサーバの起動/終了が必要 精度指標の算出関数は別途実装が必要 データ前処理・特徴抽出のチューニング アルゴリズム・ハイパーパラメタ・特徴抽出のチューニング チューニング対象のファイルが複数あるため 記述が分散し、管理が⾯倒 RPC 接続のためのコードが必要
  • 6. INTRODUCTION TO JUBAKIT Jubatus を使ったデータ分析: Jubakit の場合 1. Jubakit を利⽤したスクリプトを実⾏ 2. 結果を集計して精度指標を算出 3. チューニングを⾏う ‣ スクリプトを修正 4. 最初に戻る すべてのチューニング要素が スクリプトに集約されるため 管理すべきファイルは 1 つだけ Jubatus サーバの起動・終了は ⾃動的に⾏われる 精度指標の算出に scikit-learn 組み込みの関数を 直接活⽤できる RPC を意識しない シンプルなコードで書ける
  • 7. INTRODUCTION TO JUBAKIT サンプルコード (CSV ファイルから異常検知) dataset = Dataset(CSVLoader(“dataset.csv”)) service = Anomaly.run(Config()) for result in service.add(dataset): print(result) Jubakit の設計コンセプト シンプルなコードで動く: よく使う設定がデフォルト値として設定済み 空気を読む: データ型の⾃動推定を⾏う ⾼いカスタマイズ性: 細かい条件を指定することも可能
  • 8. INTRODUCTION TO JUBAKIT サンプルコード (CSV ファイルから異常検知) dataset = Dataset(CSVLoader(“dataset.csv”)) service = Anomaly.run(Config()) for result in service.add(dataset): print(result) CSV ファイルからデータセットを定義する データの型は⾃動推定 (⼿動で指定することも可能)
  • 9. INTRODUCTION TO JUBAKIT サンプルコード (CSV ファイルから異常検知) dataset = Dataset(CSVLoader(“dataset.csv”)) service = Anomaly.run(Config()) for result in service.add(dataset): print(result) 異常検知エンジンを起動 ハイパーパラメタは⾃動設定 (⼿動で指定することも可能)
  • 10. INTRODUCTION TO JUBAKIT サンプルコード (CSV ファイルから異常検知) dataset = Dataset(CSVLoader(“dataset.csv”)) service = Anomaly.run(Config()) for result in service.add(dataset): print(result) 各レコードの異常度スコアを 算出して表⽰
  • 11. INTRODUCTION TO JUBAKIT Jubakit のアーキテクチャ LOADER ローダ DATASET データセット SCHEMA スキーマ SERVICE サービス CONFIG 設定 CSV RDBMS TWITTER 様々なデータソースから 対象のデータを読み込む ローダから読み込まれた 各データの型と意味を定義する 機械学習の機能を提供する (分類, 異常検知, ETC.) NUMPY SCIPY サービスに必要な ハイパーパラメタを定義する … 読み 込み 学習・ 分析 学習・分析の対象 となるデータを表す (Estimator)
  • 12. INTRODUCTION TO JUBAKIT Loader - ローダ (1/2) ▸ よく使うデータ構造の Loader はビルトイン クラス 機能 LineBasedStreamLoader / LineBasedFileLoader ⾏指向のストリーム/ファイルの読み込み ArrayLoader / ZipArrayLoader 配列 (または NumPy Array) データの読み込み SparseMatrixLoader SciPy 2-D 疎⾏列データの読み込み CSVLoader CSV ファイルの読み込み TwitterStreamLoader Twitter ストリームの読み込み MergeChainLoader 複数の Loader のデータを結合して読み込み ValueMapChainLoader 他の Loader の値を写像して読み込み
  • 13. INTRODUCTION TO JUBAKIT Loader - ローダ (2/2) ▸ 組み込みでサポートされていないデータソースを利⽤した い場合は、BaseLoader を継承したカスタム Loader クラ スを実装する ▸ 実装はとても簡単. 1 レコードずつデータを yield する rows() メソッドを実装するだけ ‣ Loader から読み込まれたデータに対する後処理(窓処理など) を⾏いたい場合は、既存の Loader クラスを継承して preprocess() メソッドを実装する
  • 14. INTRODUCTION TO JUBAKIT Schema - スキーマ ▸ Loader から読み込まれた値の型と意味を定義する 名前 型/意味 STRING ⽂字列データ NUMBER 数値データ BINARY バイナリデータ LABEL 正解ラベル (Classifier のみ) AUTO Loader から⼊⼒されたデータ型をそのまま使⽤する (CSV Loader の場合は全て⽂字列型になるため注意) INFER データ型をデータの内容から⾃動推定する IGNORE そのデータを無視する
  • 15. INTRODUCTION TO JUBAKIT Schema - スキーマの定義例 schema = Schema({ ‘Category’: Schema.LABEL, ‘Title’: Schema.STRING, ‘Year’: Schema.NUMBER }, Schema.IGNORE) Category Title Year Country Director SF スターウォーズ Ep1 1999 USA G. Lucas アニメ 千と千尋の神隠し 2001 Japan H. Miyazaki ロマンス タイタニック 1997 USA J. Cameron SF ターミネーター 1991 USA J. Cameron … … … … … 分類ラベル ⽂字列データ 数値データ 無視 無視 例: 映画データベース フォールバック型 (明⽰的に指定されなかった  すべてのデータ項⽬に対する定義)
  • 16. INTRODUCTION TO JUBAKIT Service - サービス ▸ Dataset を受け取って学習・分析を⾏い、結果を返却する ▸ scikit-learn の Estimator に相当 (ただし BaseEstimator は継承していません) ▸ 裏で Jubatus サーバが起動する ▸ 現在は Classifier (分類), Anomaly (異常検知), Weight (特 徴抽出結果の表⽰) の 3 種類のサービスが提供されている
  • 17. INTRODUCTION TO JUBAKIT インストール $ pip install jubakit 基本的な機能は jubakit だけでも利⽤できますが、 scikit-learn をインストールすることで、 精度算出などの⾼度な機能も利⽤できるようになります。 $ pip install numpy spicy scikit-learn Jubakit のインストール ※Jubatus は別途インストールしておく必要があります。 ※可能な場合は pip ではなくバイナリパッケージ (yum/apt-get)  でのインストールをオススメします。
  • 18. INTRODUCTION TO JUBAKIT デモ: 実際にデータを分析してみよう ▸ Kaggle の Titanic サンプルを解いてみます ▸ https://www.kaggle.com/c/titanic ▸ https://github.com/kmaehashi/jubakit-tutorial-titanic
  • 19. INTRODUCTION TO JUBAKIT サンプルスクリプト集 ▸ example ディレクトリにサンプルスクリプトがあります ▸ ⼀部のサンプルは要 scikit-learn ▸ デモ ▸ Twitter ストリームの分析 ▸ ハイパーパラメタのバリエーション⾃動検証
  • 20. INTRODUCTION TO JUBAKIT プルリクお待ちしてます! ▸ Jubakit を使ったサンプルスクリプト ▸ カスタム Loader ▸ RDBMS とか MQ とか AWS SQS とか Kinesis とか ▸ 他の Service (Recommender, NN, …) への対応 ▸ etc.