Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Exploratoryを使ったゆとりあるワークフロー管理

 Exploratoryを使ったゆとりあるワークフロー管理

2021/11/12(金)に開催したExploratory データサイエンス勉強会#21の株式会社サイズ様のご登壇資料です。

26a31e16aab1fc9c4522dfa3a2c8ce6c?s=128

Ikuya Murasato

November 12, 2021
Tweet

Transcript

  1. 2021/11/12 株式会社サイズ 相澤 健 -Exploratoryを使ったゆとりあるワークフロー管理-

  2. 会社紹介 2 株式会社サイズ • 設 立 :2003年4月 • 事 業

    所:営業本部 渋谷区道玄坂1-18-1 • 研究開発センター 名古屋市中村区名駅3-20-21 • 社 員 数:16名 (営業 7名 エンジニア 9名)
  3. 会社紹介 3 株式会社サイズ • 事業内容 :アンケートシステムORCAの開発 ※1 システム開発/システムコンサルティング (調査画面作成、ORCA周りの受託開発、調査のシステム運用等 調査業務知識は数名保有、データ分析業務は現状2名)

    • 主取引先 :市場調査会社(ビデオリサーチ社、楽天インサイト社 イプソス社、アスマーク社、東京商工リサーチ社等) ※1.ORCA(Online Research Control system Architecture) 本気でリサーチ(調査)をしたいというお客様の要望に応えるオンラインアンケートシステム
  4. 自己紹介 名前:相澤 健(あいざわ たけし) 2016年にサイズに入社 業務内容:データの加工・集計・分析を行っています。 扱う対象はアンケートデータ・ログデータ 使用ツール:Excel、Excel VBA、Access、SQL、Tableau、R、 Exploratory(New)

    ※ゴリゴリの文系なので専門用語の誤用などあるかもしれませんが温もり目線で見守ってください 4 本日はそんな私がExploratoryと出会う前、出会ってからのお話です
  5. Agenda • プロローグ • どのツールでやるべきか • どのツールでやったのか • ワークフロー管理 •

    まとめ 5
  6. プロローグ ???「ユーザーが解約する場合、サイト内の行動に特徴はあるのか?」 -とあるサービスを展開する企業。 解約者の増加に悩んでいる。 解約者を減らしたい。 解約者のサイト内の行動に何かヒントは無いか- 6

  7. プロローグ 7 ぼく「DWHにデータとマスタが入っているからSQLでデータを取り出して…」 ぼく「特徴って何だろう。とりあえずクロス集計を見て、それから統計的手法を どうするか考えるか」 ぼく「アウトプットはグラフが必要だね。とりあえずtableauで見てみるか」 ぼく「やったことないこともあるから調べながら進めるか」

  8. 2H 5H 10H 5H 3H 5H データ抽出 データ傾向の確認 (外れ値・Null) データの加工・成型

    分析の実施 検証 グラフ作成 試行錯誤の 繰り返し プロローグ 8 分析の実施 検証 データの 加工・成型 グラフ作成 ぼく「ざっくりプロセスと時間配分はこんな感じかな」 Total 30H? データ抽出 データ傾向の確認 (外れ値・欠損値)
  9. 登場ツール紹介 9 ツール名 特徴 Excel ぼくの幼馴染。幅広くいろんなことが出来る。表やグラフでは頼りになる。でも最近の進化につ いていけずに疎遠に… R 3年前に知り合う。統計解析に優れたツール。コードを書けばたいていのことは出来る。ぼく は独学のためggplotや%>%を使ったモダンな書き方は苦手。

    SQL 2年前に知り合う。DWHからデータ抽出のための必須ツール。独学のためwithを多用して 長めのコードになりがち。 Tableau 4年前に知り合う。大規模なデータでもグラフ化が得意。ダッシュボードではフィルタを使った 探索的な使い方が出来て便利。 シリコンバレーからやって きた謎のツール その正体はまだ不明 ※発表者個人の見解であり、所属する団体の公式な見解ではありません
  10. Agenda • プロローグ • どのツールでやるべきか • どのツールでやったのか • ワークフロー管理 •

    まとめ 10
  11. それはどのツールでやるべきか-テキスト加工編- ぼく「ID毎に個別URLになっちゃうからURLからパラメータ部分を除きたいんだけど…」 https://example.com?key=1234←この部分がユーザーID毎に異なるので、条件によって置換し たい 11 SQL「オレに任せろ!REGEXP_REPLACEで正規表現を使って置換だ」 R「いや、それならオレだ!gsubで正規表現を使って置換だ」 Tableau「オレを忘れてもらっては困るな!REGEXP_REPLACEが実装されてるぞ」 Excel「ワイルドカード使って置換…」 ぼく「今回は数百万レコードあるからSQLで処理するかな…」

  12. それはどのツールでやるべきか -データ成型編- ぼく「ログデータで縦になっているものをID毎にカラムにドメインが来るように加工したいんだけど」 12 SQL「方言あるぞ!詳しくは調べてコードを書いてくれ!」 R「いや、それならオレだ!tidyrが充実してるぞ!cranで調べてコード書いてくれ!」 Tableau「オレを忘れてもらっては困るな!右クリックメニューにあるぞ」 Excel「Power Queryエディターでできるよ…」 ぼく「簡単にできそうだからtableauでやっちゃおう…」

    ID URL 111 https://example.com/aaa 111 https://example.com/bbb 111 https://example.com/ccc 222 https://example.com/aaa 222 https://example.com/ccc ID https://example.com/aaa https://example.com/bbb https://example.com/ccc 111 1 1 1 222 1 0 1
  13. それはどのツールでやるべきか -統計分析編- ぼく「ロジスティック回帰をやりたいんだけど」 13 SQL「連携している別のサービスがあるぞ!」 R「いや、それならオレだ!glmだよ!」 Tableau「そういうことはRやPythonに連携できるぞ!」 Excel「地道に計算していけば出来るよ…」 ぼく「統計解析はRが得意だよね…」

  14. それはどのツールでやるべきか→何が起きていたのか • データ量(レコード数)によって使えるツールが限定される • 学習コストを下げるために複数のツールを使い分ける(どれかをきちんと学習すれば使い分け る必要はないのかもしれないけれど) • 使い慣れていないツールだとエラーが頻発(ストレスの原因に) • 複数のツールを行き来するためにCSVファイルが必要(なケースがある)

    14
  15. 試行錯誤の 繰り返し 分析の実施 検証 データの 加工・成型 グラフ作成 データ抽出 データ傾向の確認 (外れ値・欠損値)

    2H 5H 10H 5H 3H 5H データ抽出 データ傾向の確認 (外れ値・Null) データの加工・成型 分析の実施 検証 グラフ作成 15 Total 30H? それはどのツールでやるべきか→何が起きていたのか SQL Tableau R Excel 学習コスト が含まれ ている 学習コスト が含まれ ている ツールの 切り替えが必要 ツールの 切り替えが必要 ツールの 切り替えが必要 CSVファイルが 必要
  16. Exploratory導入後⇒その結果 何かお困りですか? 16

  17. ぼく「ID毎に個別URLになっちゃうからURLからパラメータ部分を除きたいんだけど…」 https://example.com?key=1234←この部分がユーザーID毎に異なるので、条件によって置換したい 17 サマリービュー画面で「テキストデータの加工」から加工したい形式を 選ぶだけで出来ますが、何か?

  18. 18 しかもプレビューで結果を確認しながら置換できますが、何か? ※プレビューで置換したい対象を絞りこむことも出来ます ぼく「ID毎に個別URLになっちゃうからURLからパラメータ部分を除きたいんだけど…」 https://example.com?key=1234←この部分がユーザーID毎に異なるので、条件によって置換したい

  19. ぼく「ログデータで縦になっているものをID毎にカラムにドメインが来るように加工したいんだけど」 19 ID URL 111 https://example.com/aaa 111 https://example.com/bbb 111 https://example.com/ccc

    222 https://example.com/aaa 222 https://example.com/ccc ID https://example.com/aaa https://example.com/bbb https://example.com/ccc 111 1 1 1 222 1 0 1 「ロング型からワイド型へ(Gather)」を選ぶことで 数クリックで加工出来ますが、何か?
  20. ぼく「ログデータで縦になっているものをID毎にカラムにドメインが来るように加工したいんだけど」 20 ID URL 111 https://example.com/aaa 111 https://example.com/bbb 111 https://example.com/ccc

    222 https://example.com/aaa 222 https://example.com/ccc ID https://example.com/aaa https://example.com/bbb https://example.com/ccc 111 1 1 1 222 1 0 1 「ロング型からワイド型へ(Gather)」を選ぶことで 数クリックで加工出来ますが、何か?
  21. ぼく「ロジスティック回帰をやりたいんだけど」 21 アナリティクスビューで目的変数と予測変数、 いくつかのオプションを設定すれば出来ますが、何か?

  22. 2H 5H 5H 2H 3H 5H データ抽出 データ傾向の確認 (外れ値・Null) データの加工・成型

    分析の実施 検証 グラフ作成 22 Total 22H? それはどのツールでやるべきか→何が起きていたのか ※個人の感想であり、効果・効能を保証するものではありません 試行錯誤の 繰り返し 分析の実施 検証 データの 加工・成型 グラフ作成 データ抽出 データ傾向の確認 (外れ値・欠損値) ツールの切り替え無しですべてExploratoryで出来ますが、何か? ※データソースを「データベースデータ」にした場合はSQLを記述する必要があります やりたいことは、学習コストなしで クリックメニューで出来ますが、何か?
  23. Agenda • プロローグ • どのツールでやるべきか • どのツールでやったのか • ワークフロー管理 •

    まとめ 23
  24. それはどのツールがやったのか -コード記述編- ぼく「外れ値の処理をしたけど、具体的な条件はどこに書いたっけ?」 24 R「コードはコメント無しで50行あるぞ」 SQL「whereで書いてないかな?」 ぼく「あれ?なかなか見つからない…コードが長くなると探すのも大変… 」

  25. それはどのツールがやったのか -処理結果確認のための集計編- ぼく「あれ?なんで欠損値になっているんだろう?どこかで処理が間違っているのかな」 25 SQL「ちゃんと集計して確認した?」 Tableau「ちゃんと集計して確認した? 」 R「ちゃんと集計して確認した? 」 ぼく「集計して確認したらJOINの条件が足りてなかったか…

  26. それはどのツールがやったのか -再処理編- ぼく「やっぱりここの条件を変えてみようかな。変更して再処理するか」 26 SQL「よっしゃもう一回実行するよ」 Tableau「よし、もう一回処理するよ」 R「よし、もう一回処理するよ」 Excel「入力ファイルと出力ファイルがたくさん出来るぞ」 ぼく「そうか、変更処理を上流工程に入れちゃうと後の処理はすべてやり直しだよね…」

  27. それはどのツールがやったのか→何が起きていたのか • (コードを書くことで出来ることは増えるけれど)可読性が低くなり、見直す必要があるときに コードを読んで理解する時間がかかる • ミスが発生していた場合、工程の(処理毎に結果が可視化されないので)検証に時間が かかる • 初めから全体の工程を考えていても、分析のアイデアを試すために処理の追加・入れ替えを 行うと検証が増えて時間がかかる(ツールが分かれているとファイルも多くなりがち)

    27
  28. 2H 5H 10H 5H 3H 5H データ抽出 データ傾向の確認 (外れ値・Null) データの加工・成型

    分析の実施 検証 グラフ作成 28 Total 30H? SQL Tableau R Excel 複数ツー ルで再処 理が必要 それはどのツールがやったのか→何が起きていたのか 試行錯誤の 繰り返し 分析の実施 検証 データの 加工・成型 グラフ作成 データ抽出 データ傾向の確認 (外れ値・欠損値) 細かい集 計・検証 が必要 複数ツー ルで再処 理が必要 細かい集 計・検証 が必要
  29. Exploratory導入後⇒その結果 何かお困りですか? 29

  30. ぼく「外れ値の処理をしたけど、具体的な条件はどこに書いたっけ?」 30 STEPで処理を可視化出来ますが、何か?

  31. ぼく「あれ?なんで欠損値になっているんだろう?どこかで処理が間違っているのかな」 31 しかもSTEP毎にサマリービューで集計値を確認できますが、何か?

  32. ぼく「あれ?なんで欠損値になっているんだろう?どこかで処理が間違っているのかな」 32 集計値を確認できるので、 欠損値はもちろん異常値がある場合もすぐに分かる

  33. ぼく「やっぱりここの条件を変えてみようかな。変更して再処理するか」 33 しかもSTEPに「三」で追加(挿入)・ ドラッグ&ドロップでの順序入れ替え・複製も 簡単にできますが、何か?

  34. 2H 1H 2H 2H 1H 5H データ抽出 データ傾向の確認 (外れ値・Null) データの加工・成型

    分析の実施 検証 グラフ作成 34 それはどのツールがやったのか→何が起きていたのか Total 13H? ※個人の感想であり、効果・効能を保証するものではありません 試行錯誤の 繰り返し 分析の実施 検証 データの 加工・成型 グラフ作成 データ抽出 データ傾向の確認 (外れ値・欠損値) STEP毎にサマリービューで集計結果が可視化されますが、何か? ※しかもデータの型(Numeric/date等)によって適切に集計されます 処理は付箋の感覚で追加・入れ替えが簡単ですが、何か? ※しかも変更が発生すると自動で再処理されます
  35. Agenda • プロローグ • どのツールでやるべきか • どのツールでやったのか • ワークフロー管理 •

    まとめ 35
  36. Exploratory導入後 • データ抽出・ラングリング(ETL)・分析(・アウトプット)ツールの一本化 • 高度な処理もクリックメニューで実現できるので学習コストの低下 • 処理条件・工程の一覧化(STEP) • 処理結果の逐次可視化(サマリービュー) •

    ドラッグ&ドロップでの処理工程の入れ替え ※アウトプットはまだ布教が足りずExcelやPPTに頼りがち 36
  37. 2H 5H 10H 5H 3H 5H データ抽出 データ傾向の確認 (外れ値・Null) データの加工・成型

    分析の実施 検証 グラフ作成 37 Exploratory導入後 2H 1H 2H 2H 1H 5H データ抽出 データ傾向の確認 (外れ値・Null) データの加工・成型 分析の実施 検証 グラフ作成 Total 13H? Total 30H? ツールの切り替え無しですべてExploratoryで出来ますが、何か? ※データソースを「データベースデータ」にした場合はSQLを記述する必要があります STEP毎にサマリービューで集計結果が可視化されますが、何か? ※しかもデータの型(Numeric/date等)によって適切に集計されます 処理は付箋の感覚で追加・入れ替えが簡単ですが、何か? ※しかも変更が発生すると自動で再処理されます やりたいことは、右クリックメニューで出来ますが、何か? ※個人の感想であり、効果・効能を保証するものではありません
  38. Exploratory導入後 データと向き合える時間が増えた 38

  39. Exploratory導入後 だけじゃない 39

  40. 40 ブランチで処理の分岐が出来るので、アイデアレベルで試してみたいことは、ブランチで即実行 「ブランチ」で処理の分岐が出来るぞ 思いつきレベルで試してみたいことはブランチで出来るぞ ただし、ブランチのブランチは出来ないから、そこだけ注意

  41. 41 大幅に処理を変更するときはデータフレームを複製できるので、元の状態は保持できる しかもSTEP単位の複製やSTEPの無効化も出来るので、アイデアレベルを試すときには重宝 データフレーム・プロジェクトの複製が出来るぞ 元の状態を残しつつ、少し変えたものを試してみたい場合は重宝 さらにSTEP自体の無効化も出来るので、色々試せるぞ

  42. 42 ※個人の感想であり、効果・効能を保証するものではありません ワークフロー管理 →何が起きていたのか 試行錯誤の 繰り返し 分析の実施 検証 データの 加工・成型

    グラフ作成 データ抽出 データ傾向の確認 (外れ値・欠損値) もちろん試行で使ったSTEPは 違うデータフレームへ複製できるので、 本流の分析への反映も簡単だぞ 試行は複製して行えるので、気軽に実行出来るぞ
  43. Exploratory導入後 処理工程はSTEP 試行はブランチや複製で実行 ワークフローを管理する意識無しに管理できる 43

  44. Agenda • プロローグ • どのツールでやるべきか • どのツールでやったのか • ワークフロー管理 •

    まとめ 44
  45. Exploratoryまとめ • ツールの一本化ができるので、すべてのフローを集約できる • 高度な分析でも学習コスト不要(分からないことがあっても、サイト内での事例 掲載やセミナー・動画、チャットでの質問等、フォローが充実) • STEP毎にサマリービューで集計結果を確認できるのでミス(処理条件の過不 足)に気が付きやすい •

    STEP自体がワークフロー(管理している意識なし) • ブランチで処理の分岐が出来るので、一つのデータフレームから複数の形式へ 加工と保持ができる • 試したいことはデータフレームの複製やSTEPの無効化・有効化で実施 45
  46. Exploratoryのメリット データと向き合あって やりたいこと・試したいことがすぐに出来る 46

  47. Exploratoryのメリット やりたいこと・試したいことの 結果がすぐに見える 47

  48. Exploratoryのメリット データ分析が楽しくなる! 48

  49. Enjoy! 49