SlideShare a Scribd company logo
1 of 22
Download to read offline
Jubakitでもっと楽をしよう
Tetsuya Shioda
Jubatus hands-on #5 November 1, 2017
本資料で話すこと
• Jubakit の紹介
• Jubakit を使ってデフォルト判定をしてみる
• 前回の Casual Talk からの機能改善
• scikit-learn wrapper の紹介
• embedded jubatus の紹介
• まとめ
Jubatus hands-on #5 2
Jubakit とは
• Jubatus を使ったデータ分析を もっと簡単に する
Pythonモジュール
• 何が簡単になった?
• scikit-learnとの連携 や外部データソースの取り込みなどが簡単
• Jubatusサーバの起動不要で、パラメータチューニングが簡単
• 利用環境:
• Python 2.7 以降、Python 3.3 以降をサポート
• Jubatus 0.8.0 以降で利用可能
Jubatus hands-on #5 3
前回の Casual Talk
• https://www.slideshare.net/kmaehashi/jubakit-63202847
• http://jubat.us/ja/jubakit/
Jubatus hands-on #5 4
Jubakit の アーキテクチャ
Jubatus hands-on #5 5
デフォルト判定をJubakitで行う
Jubatus hands-on #5 6
1. CSVLoader を利用してデータセットを読み込む
2. 分類サービスを起動して、学習と予測を行う
データセットの読み込み
Jubatus hands-on #5 7
from jubakit.classifier import Dataset, Schema
from jubakit.loader.csv import CSVLoader
schema = Schema({“Y”: Schema.LABEL},
Schema.NUMBER)
loader = CSVLoader(“data/dataset_train.csv”)
dataset = Dataset(loader, schema)
Jubakit に流し込める Dataset を作成する
データセットの読み込み
Jubatus hands-on #5 8
from jubakit.classifier import Dataset, Schema
from jubakit.loader.csv import CSVLoader
schema = Schema({“Y”: Schema.LABEL},
Schema.NUMBER)
loader = CSVLoader(“data/dataset_train.csv”)
dataset = Dataset(loader, schema)
“Y”列をラベルとして読み込み、その他は全て数値型にする
データセットの読み込み
Jubatus hands-on #5 9
from jubakit.classifier import Dataset, Schema
from jubakit.loader.csv import CSVLoader
schema = Schema({“Y”: Schema.LABEL},
Schema.NUMBER)
loader = CSVLoader(“data/dataset_train.csv”)
dataset = Dataset(loader, schema)
読み込みたいCSVファイルを指定する
データセットの読み込み
Jubatus hands-on #5 10
from jubakit.classifier import Dataset, Schema
from jubakit.loader.csv import CSVLoader
schema = Schema({“Y”: Schema.LABEL},
Schema.NUMBER)
loader = CSVLoader(“data/dataset_train.csv”)
dataset = Dataset(loader, schema)
loaderとschemaを利用して、データセットを作成する
分類サービスの作成
Jubatus hands-on #5 11
from jubakit.classifier import Classifier, Config
config = Config(method=“AROW”,
parameter={
“regularization_weight”: 0.1
})
classifier = Classifier.run(config)
設定を引数でダイレクトに定義して、Serviceを起動する
分類サービスの作成
Jubatus hands-on #5 12
from jubakit.classifier import Classifier, Config
config = Config(method=“AROW”,
parameter={
“regularization_weight”: 0.1
})
classifier = Classifier.run(config)
JSONで記述していた設定を引数に渡す
分類サービスの作成
Jubatus hands-on #5 13
from jubakit.classifier import Classifier, Config
config = Config(method=“AROW”,
parameter={
“regularization_weight”: 0.1
})
Classifier = Classifier.run(config)
Classifierサービスを起動する
学習・予測を行う
Jubatus hands-on #5 14
for _ in classifier.train(dataset_train):
pass
y_true, y_pred = [], []
for (idx, label, result) in
classifier.classify(dataset_test):
y_true.append(label)
y_pred.append(result[0][0])
通常のJubatusと同様に、train/classifyを呼ぶ
学習・予測を行う
Jubatus hands-on #5 15
for _ in classifier.train(dataset_train):
pass
y_true, y_pred = [], []
for (idx, label, result) in
classifier.classify(dataset_test):
y_true.append(label)
y_pred.append(result[0][0])
学習を行う (yieldなのでfor文を回す)
学習・予測を行う
Jubatus hands-on #5 16
for _ in classifier.train(dataset_train):
pass
y_true, y_pred = [], []
for (idx, label, result) in
classifier.classify(dataset_test):
y_true.append(label)
y_pred.append(result[0][0])
予測結果を取得する
確信度の最も高いラベルを取るにはresult[0][0]
前回の Casual Talk からの変更点
 分析機能 の追加:
 Classifier, Anomaly, Recommender, Regression が利用可能
 scikit-learn wrapper の追加:
 fit(X, y) や predict(X) など、お馴染みの API から Jubatus を利用可能
 jubash:CLI を利用して対話的に Jubatus を利用できるツール
 コードを書くまでもないが、挙動確認をしたいときに便利
 jubamodel:保存したモデルの設定変更ができるツール
 config の書き換え
 近傍探索モデルのClassifierモデルとの相互変換、など
Jubatus hands-on #5 17
scikit-learn wrapper の使い方
Jubatus hands-on #5 18
from sklearn.metrics import classification_report
from jubakit.wrapper.classifier import LinearClassifier
clf = LinearClassifier(method=“AROW”,
regularization_weight=0.1,
embedded=False)
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
print(classification_report(y_test, y_pred))
scikit-learn と同様のインターフェースで利用可能
scikit-learn wrapper の使い方
Jubatus hands-on #5 19
from sklearn.metrics import classification_report
from jubakit.wrapper.classifier import LinearClassifier
clf = LinearClassifier(method=“AROW”,
regularization_weight=0.1,
embedded=False)
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
print(classification_report(y_test, y_pred))
embeddedオプション:embedded_jubatusを使うか否か
Embedded Jubatus
• jubatus_coreを直接叩ける Pythonモジュール
• jubatus_core: Jubatusの機械学習実装部
• データ授受が高速なのでパラメータ調整などで役立つ
• クライアントを少し変えるだけで利用可能
Jubatus hands-on #5 20
from jubatus.classifier.client import Classifier
classifier = Classifier(host, port, name)
from jubatus.embedded import Classifier
classifier = Classifier(‘config.json’)
設定ファイルのJSONを直接パスで指定するだけでOK
今まで
embedded
本資料で話したこと
• Jubakit の紹介
• Jubakit を使ってデフォルト判定をしてみる
• 前回の Casual Talk からの機能改善
• scikit-learn wrapper の紹介
• embedded jubatus の紹介
Jubatus hands-on #5 21
さいごに
Pull-Request お待ちしてます!
https://github.com/jubatus/jubakit
Jubatus hands-on #5 22

More Related Content

What's hot

Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類Shuzo Kashihara
 
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化JubatusOfficial
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門Takuji Tahara
 
Python東海Vol.5 IPythonをマスターしよう
Python東海Vol.5 IPythonをマスターしようPython東海Vol.5 IPythonをマスターしよう
Python東海Vol.5 IPythonをマスターしようHiroshi Funai
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識Katsuhiro Morishita
 
「深層学習」の本に出てきたデータセット達
「深層学習」の本に出てきたデータセット達「深層学習」の本に出てきたデータセット達
「深層学習」の本に出てきたデータセット達Hiromasa Ohashi
 
みんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extrasみんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extrasTakuji Tahara
 
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」Yasuyuki Sugai
 
jubarecommenderの紹介
jubarecommenderの紹介jubarecommenderの紹介
jubarecommenderの紹介JubatusOfficial
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of PythonTakanori Suzuki
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Etsuji Nakai
 
PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門Hironori Sekine
 
SensorBeeでChainerをプラグインとして使う
SensorBeeでChainerをプラグインとして使うSensorBeeでChainerをプラグインとして使う
SensorBeeでChainerをプラグインとして使うDaisuke Tanaka
 
エキ Py 読書会02 2章前半
エキ Py 読書会02 2章前半エキ Py 読書会02 2章前半
エキ Py 読書会02 2章前半Tetsuya Morimoto
 
深層学習フレームワークChainerの紹介とFPGAへの期待
深層学習フレームワークChainerの紹介とFPGAへの期待深層学習フレームワークChainerの紹介とFPGAへの期待
深層学習フレームワークChainerの紹介とFPGAへの期待Seiya Tokui
 
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
 
Introduction to Chainer and CuPy
Introduction to Chainer and CuPyIntroduction to Chainer and CuPy
Introduction to Chainer and CuPyKenta Oono
 

What's hot (20)

JubaQLご紹介
JubaQLご紹介JubaQLご紹介
JubaQLご紹介
 
Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類
 
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 
jubabanditの紹介
jubabanditの紹介jubabanditの紹介
jubabanditの紹介
 
Python東海Vol.5 IPythonをマスターしよう
Python東海Vol.5 IPythonをマスターしようPython東海Vol.5 IPythonをマスターしよう
Python東海Vol.5 IPythonをマスターしよう
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
 
「深層学習」の本に出てきたデータセット達
「深層学習」の本に出てきたデータセット達「深層学習」の本に出てきたデータセット達
「深層学習」の本に出てきたデータセット達
 
みんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extrasみんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extras
 
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
 
jubarecommenderの紹介
jubarecommenderの紹介jubarecommenderの紹介
jubarecommenderの紹介
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編
 
PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門
 
SensorBeeでChainerをプラグインとして使う
SensorBeeでChainerをプラグインとして使うSensorBeeでChainerをプラグインとして使う
SensorBeeでChainerをプラグインとして使う
 
エキ Py 読書会02 2章前半
エキ Py 読書会02 2章前半エキ Py 読書会02 2章前半
エキ Py 読書会02 2章前半
 
深層学習フレームワークChainerの紹介とFPGAへの期待
深層学習フレームワークChainerの紹介とFPGAへの期待深層学習フレームワークChainerの紹介とFPGAへの期待
深層学習フレームワークChainerの紹介とFPGAへの期待
 
2013.07.15 はじパタlt scikit-learnで始める機械学習
2013.07.15 はじパタlt scikit-learnで始める機械学習2013.07.15 はじパタlt scikit-learnで始める機械学習
2013.07.15 はじパタlt scikit-learnで始める機械学習
 
Introduction to Chainer and CuPy
Introduction to Chainer and CuPyIntroduction to Chainer and CuPy
Introduction to Chainer and CuPy
 
SensorBeeのご紹介
SensorBeeのご紹介SensorBeeのご紹介
SensorBeeのご紹介
 

Viewers also liked

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

Viewers also liked (20)

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

Similar to Jubakitの解説

みんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしようみんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしようAtsushi Odagiri
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)NTT DATA Technology & Innovation
 
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
 
はじめてのPython
はじめてのPythonはじめてのPython
はじめてのPythonKatsumi Honda
 
eggとはなんだったのか 栄光のsetuptools
eggとはなんだったのか 栄光のsetuptoolseggとはなんだったのか 栄光のsetuptools
eggとはなんだったのか 栄光のsetuptoolsAtsushi Odagiri
 
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
 
Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1Kosuke Kida
 
datetime.datetime.now()をモックしたい.pdf
datetime.datetime.now()をモックしたい.pdfdatetime.datetime.now()をモックしたい.pdf
datetime.datetime.now()をモックしたい.pdfYutaNemoto1
 
RTM講習会 2部
RTM講習会 2部RTM講習会 2部
RTM講習会 2部openrtm
 
Easy caching and logging package using annotation in Python
Easy caching and logging package using annotation in PythonEasy caching and logging package using annotation in Python
Easy caching and logging package using annotation in PythonYasunori Horikoshi
 
PYTHON PACKAGING (PyFes 2012.03 発表資料)
PYTHON PACKAGING (PyFes 2012.03 発表資料)PYTHON PACKAGING (PyFes 2012.03 発表資料)
PYTHON PACKAGING (PyFes 2012.03 発表資料)Takayuki Shimizukawa
 
Distutil setuptools distribute
Distutil setuptools distributeDistutil setuptools distribute
Distutil setuptools distributeAtsushi Odagiri
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Djangoのエントリポイントとアプリケーションの仕組み
Djangoのエントリポイントとアプリケーションの仕組みDjangoのエントリポイントとアプリケーションの仕組み
Djangoのエントリポイントとアプリケーションの仕組みShinya Okano
 
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014Nobuyuki Tamaoki
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Exastro IT Automation オンラインインストール v1.4.1
Exastro IT Automation オンラインインストール  v1.4.1Exastro IT Automation オンラインインストール  v1.4.1
Exastro IT Automation オンラインインストール v1.4.1Exastro Suite Community
 

Similar to Jubakitの解説 (20)

みんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしようみんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしよう
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
 
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)
 
はじめてのPython
はじめてのPythonはじめてのPython
はじめてのPython
 
eggとはなんだったのか 栄光のsetuptools
eggとはなんだったのか 栄光のsetuptoolseggとはなんだったのか 栄光のsetuptools
eggとはなんだったのか 栄光のsetuptools
 
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版
 
Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1
 
datetime.datetime.now()をモックしたい.pdf
datetime.datetime.now()をモックしたい.pdfdatetime.datetime.now()をモックしたい.pdf
datetime.datetime.now()をモックしたい.pdf
 
RTM講習会 2部
RTM講習会 2部RTM講習会 2部
RTM講習会 2部
 
Easy caching and logging package using annotation in Python
Easy caching and logging package using annotation in PythonEasy caching and logging package using annotation in Python
Easy caching and logging package using annotation in Python
 
PYTHON PACKAGING (PyFes 2012.03 発表資料)
PYTHON PACKAGING (PyFes 2012.03 発表資料)PYTHON PACKAGING (PyFes 2012.03 発表資料)
PYTHON PACKAGING (PyFes 2012.03 発表資料)
 
Distutil setuptools distribute
Distutil setuptools distributeDistutil setuptools distribute
Distutil setuptools distribute
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Git
GitGit
Git
 
Djangoのエントリポイントとアプリケーションの仕組み
Djangoのエントリポイントとアプリケーションの仕組みDjangoのエントリポイントとアプリケーションの仕組み
Djangoのエントリポイントとアプリケーションの仕組み
 
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Exastro IT Automation オンラインインストール v1.4.1
Exastro IT Automation オンラインインストール  v1.4.1Exastro IT Automation オンラインインストール  v1.4.1
Exastro IT Automation オンラインインストール v1.4.1
 

Recently uploaded

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 

Recently uploaded (8)

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 

Jubakitの解説

  • 2. 本資料で話すこと • Jubakit の紹介 • Jubakit を使ってデフォルト判定をしてみる • 前回の Casual Talk からの機能改善 • scikit-learn wrapper の紹介 • embedded jubatus の紹介 • まとめ Jubatus hands-on #5 2
  • 3. Jubakit とは • Jubatus を使ったデータ分析を もっと簡単に する Pythonモジュール • 何が簡単になった? • scikit-learnとの連携 や外部データソースの取り込みなどが簡単 • Jubatusサーバの起動不要で、パラメータチューニングが簡単 • 利用環境: • Python 2.7 以降、Python 3.3 以降をサポート • Jubatus 0.8.0 以降で利用可能 Jubatus hands-on #5 3
  • 4. 前回の Casual Talk • https://www.slideshare.net/kmaehashi/jubakit-63202847 • http://jubat.us/ja/jubakit/ Jubatus hands-on #5 4
  • 6. デフォルト判定をJubakitで行う Jubatus hands-on #5 6 1. CSVLoader を利用してデータセットを読み込む 2. 分類サービスを起動して、学習と予測を行う
  • 7. データセットの読み込み Jubatus hands-on #5 7 from jubakit.classifier import Dataset, Schema from jubakit.loader.csv import CSVLoader schema = Schema({“Y”: Schema.LABEL}, Schema.NUMBER) loader = CSVLoader(“data/dataset_train.csv”) dataset = Dataset(loader, schema) Jubakit に流し込める Dataset を作成する
  • 8. データセットの読み込み Jubatus hands-on #5 8 from jubakit.classifier import Dataset, Schema from jubakit.loader.csv import CSVLoader schema = Schema({“Y”: Schema.LABEL}, Schema.NUMBER) loader = CSVLoader(“data/dataset_train.csv”) dataset = Dataset(loader, schema) “Y”列をラベルとして読み込み、その他は全て数値型にする
  • 9. データセットの読み込み Jubatus hands-on #5 9 from jubakit.classifier import Dataset, Schema from jubakit.loader.csv import CSVLoader schema = Schema({“Y”: Schema.LABEL}, Schema.NUMBER) loader = CSVLoader(“data/dataset_train.csv”) dataset = Dataset(loader, schema) 読み込みたいCSVファイルを指定する
  • 10. データセットの読み込み Jubatus hands-on #5 10 from jubakit.classifier import Dataset, Schema from jubakit.loader.csv import CSVLoader schema = Schema({“Y”: Schema.LABEL}, Schema.NUMBER) loader = CSVLoader(“data/dataset_train.csv”) dataset = Dataset(loader, schema) loaderとschemaを利用して、データセットを作成する
  • 11. 分類サービスの作成 Jubatus hands-on #5 11 from jubakit.classifier import Classifier, Config config = Config(method=“AROW”, parameter={ “regularization_weight”: 0.1 }) classifier = Classifier.run(config) 設定を引数でダイレクトに定義して、Serviceを起動する
  • 12. 分類サービスの作成 Jubatus hands-on #5 12 from jubakit.classifier import Classifier, Config config = Config(method=“AROW”, parameter={ “regularization_weight”: 0.1 }) classifier = Classifier.run(config) JSONで記述していた設定を引数に渡す
  • 13. 分類サービスの作成 Jubatus hands-on #5 13 from jubakit.classifier import Classifier, Config config = Config(method=“AROW”, parameter={ “regularization_weight”: 0.1 }) Classifier = Classifier.run(config) Classifierサービスを起動する
  • 14. 学習・予測を行う Jubatus hands-on #5 14 for _ in classifier.train(dataset_train): pass y_true, y_pred = [], [] for (idx, label, result) in classifier.classify(dataset_test): y_true.append(label) y_pred.append(result[0][0]) 通常のJubatusと同様に、train/classifyを呼ぶ
  • 15. 学習・予測を行う Jubatus hands-on #5 15 for _ in classifier.train(dataset_train): pass y_true, y_pred = [], [] for (idx, label, result) in classifier.classify(dataset_test): y_true.append(label) y_pred.append(result[0][0]) 学習を行う (yieldなのでfor文を回す)
  • 16. 学習・予測を行う Jubatus hands-on #5 16 for _ in classifier.train(dataset_train): pass y_true, y_pred = [], [] for (idx, label, result) in classifier.classify(dataset_test): y_true.append(label) y_pred.append(result[0][0]) 予測結果を取得する 確信度の最も高いラベルを取るにはresult[0][0]
  • 17. 前回の Casual Talk からの変更点  分析機能 の追加:  Classifier, Anomaly, Recommender, Regression が利用可能  scikit-learn wrapper の追加:  fit(X, y) や predict(X) など、お馴染みの API から Jubatus を利用可能  jubash:CLI を利用して対話的に Jubatus を利用できるツール  コードを書くまでもないが、挙動確認をしたいときに便利  jubamodel:保存したモデルの設定変更ができるツール  config の書き換え  近傍探索モデルのClassifierモデルとの相互変換、など Jubatus hands-on #5 17
  • 18. scikit-learn wrapper の使い方 Jubatus hands-on #5 18 from sklearn.metrics import classification_report from jubakit.wrapper.classifier import LinearClassifier clf = LinearClassifier(method=“AROW”, regularization_weight=0.1, embedded=False) clf.fit(X_train, y_train) y_pred = clf.predict(X_test) print(classification_report(y_test, y_pred)) scikit-learn と同様のインターフェースで利用可能
  • 19. scikit-learn wrapper の使い方 Jubatus hands-on #5 19 from sklearn.metrics import classification_report from jubakit.wrapper.classifier import LinearClassifier clf = LinearClassifier(method=“AROW”, regularization_weight=0.1, embedded=False) clf.fit(X_train, y_train) y_pred = clf.predict(X_test) print(classification_report(y_test, y_pred)) embeddedオプション:embedded_jubatusを使うか否か
  • 20. Embedded Jubatus • jubatus_coreを直接叩ける Pythonモジュール • jubatus_core: Jubatusの機械学習実装部 • データ授受が高速なのでパラメータ調整などで役立つ • クライアントを少し変えるだけで利用可能 Jubatus hands-on #5 20 from jubatus.classifier.client import Classifier classifier = Classifier(host, port, name) from jubatus.embedded import Classifier classifier = Classifier(‘config.json’) 設定ファイルのJSONを直接パスで指定するだけでOK 今まで embedded
  • 21. 本資料で話したこと • Jubakit の紹介 • Jubakit を使ってデフォルト判定をしてみる • 前回の Casual Talk からの機能改善 • scikit-learn wrapper の紹介 • embedded jubatus の紹介 Jubatus hands-on #5 21