狠狠撸
Submit Search
Jubatus: Jubakitでもっと楽をしよう
?
Download as PPTX, PDF
?
1 like
?
312 views
T
Tetsuya Shioda
Follow
第5回闯耻产补迟耻蝉ハンズオンで利用した资料です。
Read less
Read more
1 of 22
Download now
Downloaded 12 times
More Related Content
Jubatus: Jubakitでもっと楽をしよう
1.
Jubakitでもっと楽をしよう Tetsuya Shioda Jubatus hands-on
#5 November 1, 2017
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 ?
/kmaehashi/jubakit-63202847 ? http://jubat.us/ja/jubakit/ Jubatus hands-on #5 4
5.
Jubakit の アーキテクチャ Jubatus
hands-on #5 5
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
22.
さいごに Pull-Request お待ちしてます! https://github.com/jubatus/jubakit Jubatus hands-on
#5 22
Download