狠狠撸

狠狠撸Share a Scribd company logo
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など)で動作

More Related Content

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

  • 1. NYSOL Partner KSK Analytics 2014/5/31 ? 第39回R勉強会@東京(#TokyoR) ? Lightning ?Talk 高速に前処理するNYSOL 株式会社KSKアナリティクス ? データアナリスト 北島 聡 ?
  • 2. NYSOL Partner KSK Analytics データ分析のプロセス ? 実は8割以上は前処理 社外データ 業務システム EXCEL 様々なデータ形式 ? 膨大なデータ量 ? 複雑なデータ構造 分析用 データ 各種?分析モデル クラス ? 分類 回帰 分析 パターン 解析 クラスタ リング CSV 繰り返しの 前処理 ? SQLクエリ? ? AWK? ? ETLツール? ? Python?Ruby? ? R? ? Excel? ? ?
  • 3. NYSOL Partner KSK Analytics ? KSK Analytics Inc. 3 データ分析のプロセス ? 実は8割以上は前処理 1.? システム担当者はデータ加工を嫌がります ? 2.? SQLは複雑?実行時間もかかりすぎます ? 3.? プログラミングは実行まで時間がかかります ? 4.? DWHや専用ツールはお金がかかります ? 5.? データ加工には特殊な能力が必要? 分析用 データ 繰り返しの 前処理 ? SQLクエリ? ? AWK? ? ETLツール? ? Python?Ruby? ? R? ? Excel? ? ?
  • 4. NYSOL Partner KSK Analytics ? KSK Analytics Inc. 4 ?「にそる」と読みます。 ? ?日本発のオープンソースです。 ? ?すべて無料です。 ? ?www.nysol.jp ?
  • 5. NYSOL Partner KSK Analytics ? KSK Analytics Inc. 5
  • 6. NYSOL Partner KSK Analytics ? KSK Analytics Inc. 6 本日のご紹介は、 ? この「Mコマンド」です。
  • 7. NYSOL Partner KSK Analytics ? KSK Analytics Inc. 7 自信を持って ? 言えること
  • 8. NYSOL Partner KSK Analytics Rより簡単。 ? KSK Analytics Inc. 8 <
  • 9. NYSOL Partner KSK Analytics ? KSK Analytics Inc. 9 < Rより早い。
  • 10. NYSOL Partner KSK Analytics ? KSK Analytics Inc. 10 < 某DBより早い。
  • 11. NYSOL Partner KSK Analytics ? KSK Analytics Inc. 11 < Rより柔らかい。
  • 12. NYSOL Partner KSK Analytics ? KSK Analytics Inc. 12 皆さん、 ? ごめんなさい。
  • 13. NYSOL Partner KSK Analytics ? KSK Analytics Inc. 13 R勉強会ですが、
  • 14. NYSOL Partner KSK Analytics ? KSK Analytics Inc. 14 これからRの話は ? 全くしません ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?m(__)m
  • 15. NYSOL Partner KSK Analytics ? KSK Analytics Inc. 15 簡単。早い。柔らかい。
  • 16. NYSOL Partner KSK Analytics 仕組みはシンプル Mコマンド ? ?UNIXコマンド ? ?約70種類 ? ?CSVデータ ? ? 組み合わせは無限大 ? ?各コマンドを ?  「パイプ」で接続 ? KSK Analytics Inc. 16
  • 17. NYSOL Partner KSK Analytics 顧客の平均来店間隔日数を求めたい
  • 18. NYSOL Partner KSK Analytics データはCSV
  • 19. NYSOL Partner KSK Analytics STEP.1) ? 必要になる 「顧客」と「日付」項目を選択する。(「商品」を排除) mcut ?f=顧客,日付
  • 20. NYSOL Partner KSK Analytics STEP.2) ?     どの日に来店したかがわかればよいので、 ?     同じ顧客で日付の重複行は省く。 muniq ?k=顧客,日付
  • 21. NYSOL Partner KSK Analytics STEP.3) ? 「日付」項目の下レコードを横にずらす mslide ?k=顧客 f=日付:次日付 ?
  • 22. NYSOL Partner KSK Analytics STEP.4) ? 「次日付」-「日付」の日数計算を行う。 mcal ?c=‘$d{次日付}-?‐$d{日付}’ ?a=日数
  • 23. NYSOL Partner KSK Analytics STEP.5) ? 「日付」と「次日付」は必要ないので省く。 mcut ?f=顧客,日数
  • 24. NYSOL Partner KSK Analytics STEP.6) ? 顧客別に日数の平均値を計算 ? (項目名を「平均来店間隔日数」とする) ? mavg ?k=顧客 f=日数:平均来店間隔日数
  • 25. 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
  • 26. NYSOL Partner KSK Analytics ? KSK Analytics Inc. 26 約70種類のコマンド(一覧がご覧いただけます) ? hmp://www.nysol.sakura.ne.jp/mcmd/jp/index.html ? ?
  • 27. NYSOL Partner KSK Analytics ? KSK Analytics Inc. 27 日本発のオープンソースです。 ? みなさん、一緒に応援しましょう! ?
  • 28. 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など)で動作