Download - #TokyoR 39 高速に前処理するNYSOL
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 セールス & マーケティング本部 [email protected]
www.nysol.jp
株式会社KSKアナリティクスでは、 NYSOLのビジネスサポート、トレーニング等を 提供しています。お気軽に問い合わせ下さい。
ダウンロードはこちらから UNIX環境(Linux, Macなど)で動作