狠狠撸

狠狠撸Share a Scribd company logo
Python 特徴抽出プラグイン
Tetsuya Shioda
Jubatus hands-on #5 November 1, 2017
Python 特徴抽出プラグイン とは
? Jubatus で特徴抽出を より簡単に 記述できる
Pythonモジュール
? 何が嬉しい?
? scikit-learn や NTLK など外部ライブラリと連携が可能
? Python で記述できる手軽さ。C++を書かなくてもOK。
? 利用環境:
? Python 2.6 以降、Python 3.3 以降をサポート
? Jubatus 1.0.5 以降で利用可能
Jubatus hands-on #5 2
今までの特徴抽出プラグインでは
? C++実装で、記述量が若干多い。
Jubatus hands-on #5 3
特徴抽出をもっと簡単に
? たった8行で特徴抽出ができるようになります
? 数値 / テキスト / バイナリ特徴量の特徴抽出に対応
? Python外部ライブラリとの連携が可能
Jubatus hands-on #5 4
数値特徴量に対する特徴抽出
Jubatus hands-on #5 5
NLTKによるテキスト特徴量抽出
Jubatus hands-on #5 6
foxes -> fox など原型変換できる
開始位置
文字列データ
データ長 スコア
0でもOK0でもOK 通常は1.0でOK
トークン化
使い方
1. 特徴抽出プラグインを実装する( .pyファイルを作成)
2. PYTHONPATHが通っているところに .py ファイルを配置する
3. 設定ファイルを記述、Jubatusサーバを起動すれば利用できる
Jubatus hands-on #5 7
.py ファイル名
クラス名
rulesの中で呼ぶ
デモ:
Jubatus hands-on #5 8
時系列特徴抽出プラグイン
https://github.com/jubatus/events/
hands-on-5th/python-plugin
時系列データ分析
? 時間とともに変化するデータ系列を予測したい
? 電力消費量、株価、売上高など
? 自己回帰(AR)モデル
? 最も単純な時系列データ予測手法の1つ
? AR(p)モデル:現在の値が、過去 p 期分のデータに依存する モデル
Jubatus hands-on #5 9
? ? = ? + ?
?=?
?
?? ? ??? + ? ?
AR(2)系列
321
Jubatus に
一工夫が必要
? Jubatusは受け取ったデータを学習してすぐ捨てる。保存はしない。
? 受け取ったデータを一時的に保存するキャッシュが必要
? 特徴抽出プラグイン側で保存するようにしよう
過去のデータを保存するには
Jubatus hands-on #5 10
Cache 必要なくなったら削除する
自己回帰モデルの特徴抽出
Jubatus hands-on #5 11
特徴量ごとにキャッシュを持つ
最新データをキャッシュに格納
一番古いデータを削除
過去p期分の特徴量を全て生成
特徴抽出結果とする
サンプルプラグイン
? GitHub の jubatus リポジトリで以下の4種類のサンプルを提供
? binary_length.py:バイナリデータ長取得
? number_multiplier.py:掛け算
? sentence_stemmer.py:NTLKによるステミング
? space_splitter.py:単語のスペース区切り
? 各プラグインの利用方法は、公式Webサイトをご覧ください
http://jubat.us/ja/fv_convert.html#python-bridge
Jubatus hands-on #5 12
さいごに
Pull-Request お待ちしてます!
https://github.com/jubatus/jubatus
Jubatus hands-on #5 13

More Related Content

Jubatus Python特徴抽出フ?ラク?イン