#TokyoR 39 高速に前処理するNYSOL

Preview:

DESCRIPTION

高速に前処理するNYSOLについて、#TokyoR 39で発表しました。 主にMコマンド(MCMD)をご紹介しています。

Citation preview

NYSOL Partner KSK Analytics

2014/5/31  第39回R勉強会@東京(#TokyoR)  Lightning  Talk

高速に前処理するNYSOL

株式会社KSKアナリティクス  データアナリスト 北島 聡  

NYSOL Partner KSK Analytics

データ分析のプロセス  実は8割以上は前処理

社外データ

業務システム

EXCEL

様々なデータ形式  膨大なデータ量  複雑なデータ構造

分析用データ

各種・分析モデル

クラス  分類

回帰分析

パターン解析

クラスタリング

CSV

繰り返しの 前処理  SQLクエリ?  AWK?  ETLツール?  Python?Ruby?  R?  Excel?    

NYSOL Partner KSK Analytics © KSK Analytics Inc. 3

データ分析のプロセス  実は8割以上は前処理

1.  システム担当者はデータ加工を嫌がります  2.  SQLは複雑・実行時間もかかりすぎます  3.  プログラミングは実行まで時間がかかります  4.  DWHや専用ツールはお金がかかります  5.  データ加工には特殊な能力が必要?

分析用データ

繰り返しの 前処理  SQLクエリ?  AWK?  ETLツール?  Python?Ruby?  R?  Excel?    

NYSOL Partner KSK Analytics © KSK Analytics Inc. 4

・「にそる」と読みます。  ・日本発のオープンソースです。  ・すべて無料です。  ・www.nysol.jp  

NYSOL Partner KSK Analytics © KSK Analytics Inc. 5

NYSOL Partner KSK Analytics © KSK Analytics Inc. 6

本日のご紹介は、  この「Mコマンド」です。

NYSOL Partner KSK Analytics © KSK Analytics Inc. 7

自信を持って  言えること

NYSOL Partner KSK Analytics

Rより簡単。

© KSK Analytics Inc. 8

NYSOL Partner KSK Analytics © KSK Analytics Inc. 9

Rより早い。

NYSOL Partner KSK Analytics © KSK Analytics Inc. 10

某DBより早い。

NYSOL Partner KSK Analytics © KSK Analytics Inc. 11

Rより柔らかい。

NYSOL Partner KSK Analytics © KSK Analytics Inc. 12

皆さん、  ごめんなさい。

NYSOL Partner KSK Analytics © KSK Analytics Inc. 13

R勉強会ですが、

NYSOL Partner KSK Analytics © KSK Analytics Inc. 14

これからRの話は  全くしません                                  m(__)m

NYSOL Partner KSK Analytics © KSK Analytics Inc. 15

簡単。早い。柔らかい。

NYSOL Partner KSK Analytics

仕組みはシンプル

Mコマンド  ・UNIXコマンド  ・約70種類  ・CSVデータ    

組み合わせは無限大  ・各コマンドを   「パイプ」で接続

© KSK Analytics Inc. 16

NYSOL Partner KSK Analytics

顧客の平均来店間隔日数を求めたい

NYSOL Partner KSK Analytics

データはCSV

NYSOL Partner KSK Analytics

STEP.1)  必要になる 「顧客」と「日付」項目を選択する。(「商品」を排除)

mcut  f=顧客,日付

NYSOL Partner KSK Analytics

STEP.2)      どの日に来店したかがわかればよいので、      同じ顧客で日付の重複行は省く。

muniq  k=顧客,日付

NYSOL Partner KSK Analytics

STEP.3)  「日付」項目の下レコードを横にずらす

mslide  k=顧客 f=日付:次日付  

NYSOL Partner KSK Analytics

STEP.4)  「次日付」-「日付」の日数計算を行う。

mcal  c=‘$d{次日付}-­‐$d{日付}’  a=日数

NYSOL Partner KSK Analytics

STEP.5)  「日付」と「次日付」は必要ないので省く。

mcut  f=顧客,日数

NYSOL Partner KSK Analytics

STEP.6)  顧客別に日数の平均値を計算  (項目名を「平均来店間隔日数」とする)  

mavg  k=顧客 f=日数:平均来店間隔日数

NYSOL Partner KSK Analytics

シェルスクリプト

以上のような処理を実際にコンピュータで行うためには、1)コマンドラインから入力する、もしくは2)シェルスクリプトを記述する、の大きく2パターン。 入力ファイルを「購買履歴データ.csv」、出力ファイル名を「結果.csv」とすると、シェルスクリプトでの記載は以下のようになります。

#!/bin/sh mcut  f=顧客,日付 i=購買履歴データ.csv  |  muniq  k=顧客,日付 |  mslide  k=顧客 f=日付:次日付 |  mcal  c='$d{次日付}-­‐$d{日付}'  a=日数 |  mcut  f=顧客,日数 |  mavg  k=顧客 f=日数:平均来店間隔日数 o=結果.csv

NYSOL Partner KSK Analytics © KSK Analytics Inc. 26

約70種類のコマンド(一覧がご覧いただけます)  

hmp://www.nysol.sakura.ne.jp/mcmd/jp/index.html    

NYSOL Partner KSK Analytics © KSK Analytics Inc. 27

日本発のオープンソースです。  みなさん、一緒に応援しましょう!  

NYSOL Partner KSK Analytics © KSK Analytics Inc. 28

株式会社KSKアナリティクス www.ksk-anl.com  セールス & マーケティング本部 sales@ksk-anl.com

www.nysol.jp

株式会社KSKアナリティクスでは、  NYSOLのビジネスサポート、トレーニング等を  提供しています。お気軽に問い合わせ下さい。

ダウンロードはこちらから  UNIX環境(Linux,  Macなど)で動作

Recommended