【読書】ビッグデータ分析・活用のためのSQLレシピ
年末年始で読書がはかどりました。長期休暇は骨のある本を読むのに良いですね。3連休でいろいろやりたいなぁ。
この本を読んだ理由
ブラウザさえあればできるという点が好都合でDataCampを利用してSQLの勉強をしていたが、やっていることが「10年戦えるデータ分析」の内容よりも複雑になっていくにつれ、「知らないことを英語で勉強する」ことの難易度が上がっていた。
DataCampを進めていたが、なんとなく指示にしたがってコードを埋めているに近く、理解しているか怪しく、体系的に整理したくなった。
感想
「SQL黒魔術本」などと紹介されているのを見たことがあって、オーバースペックな内容なのかなと思っていたが、やってみたいような実例が多くわかりやすくて良かった。
8章のレコメンド・検索の部分は「通常の実務ではRやPythonなどのパッケージを用いるケースが多い」と本書内でも言及されていたので主にこの部分を指して黒魔術と言っているのだろうか。レコメンドや検索についても、「なんとなくの仕組みは知っている」程度の理解度だったので、具体的にどういうデータを使ってどういう計算でしているのかが分かっておもしろかった。
手を動かすのはこれからなので、今はまだビッグデータの活用でこういうことができるんだなという目線が強い。ただ、実際の取得方法という点の部分から物事を理解するのは相変わらず好きだなと思った。
どのように読んだか
ただ読み流すと整理にならないと思い、章・節の名前と、ビジネス的に何に使えるのか、主に利用するコードや関数、備考をスプレッドシートに記入しながら読んだ。
これは
- 売上分析(4章)・ユーザー分析(5章)・WEBサイト分析(6章)でどのような指標があり、それに紐づくコードや関数は何か
- ビジネス上でよく使うコードや関数は何か
を整理することができて有意義だった。
興味深かったこと
レコメンドシステムに利用するデータによって得られる精度、効果の違いは、アンケートデータと行動データをうまく組み合わせてよりよいものを作りたいと考えている自分にとっては、考える上でのヒントになり、特に興味深かった。
購入データや閲覧ログのような暗黙的なデータ獲得
⇒ユーザーの「行動」から、好みを「推測」する。データ量は多いが、評価の正確性に欠ける
口コミの時の評価点のような明示的なデータ獲得
⇒ユーザーに好みを「聞く」。データ量は少なくなるが、評価に段階を設けることができ、評価の正確さは高い。
※本の記述を元に、筆者が編集
また、売上分析やRMF分析くらいまでは既知で、WEBサービス特有*1と思われるものは名前をいくつか聞いたことがある程度のものが多かった。こういうデータがこういう方法で取れて、こういう指標が作れて、例えばこう使えるとわかったことや、名前は知っているけどどういうデータを使っているかは知らなかったものの内情がわかって為になった。
既にある状態だけど誰かが考えたんだよなぁとか、少し乱暴な言い方をすると色々な指標や見方があるけれど骨組みは割り算とクロス集計だなぁ*2と思ったので、絶対的なものとして特別視せずに自分でも適切なものを考えたい。
これからやりたいこと
サンプルデータを利用して実際にコードを写してみたり、自分が関心のあるデータを取得して分析してみたりしたい。
GoogleHomeでライフログを取得して分析したり、*3このブログのアクセスログを取得して分析したりするのがおもしろそうかなぁと思っているけど、前者はセッティングとデータを貯めるのにまだ時間がかかって、後者はBigQuery*4*5なのでまずはサンプルデータかなぁ。
以下は自分のための覚書
継続率
定義:登録日を基準として、その後の指定日においてユーザーのサービス利用を示す指標
使う対象:ユーザーが習慣として、毎日利用してもらいたいサービス(ex:ニュースサイト、ソーシャルゲーム、SNSなど)
定着率
定義:登録日を基準として、その後の特定の7日間において、ユーザーのサービス利用を示す指標
使う対象:ユーザーに何らかの目的が発生した際に利用してもらいたいサービス(ex:ECサイト、クチコミサイト、Q&Aサイト、写真投稿サイトなど)
共に登録日からn日経過しないと計算できないので、まずは短期間で施策の結果が反映される指標を重視するとよい
ユーザーアクションとクロス集計すると、何をすると継続率・定着率が高まるかのヒントを得られる
残存率
ユーザーの残存率を集計でき、以前と比べてどうか、下がる傾向があるタイミング、以前から利用したユーザーの離脱が起きたタイミングをみることで、何が起こっているかの仮説を立てられる
いろいろな指標とその算出方法
成長指数(Growth index) = Signup + Reactivation - Deactivation - Exit
カゴ落ち率 = 購入数/カート追加数
訪問者数:ブラウザを閉じても消えないCookieのユニーク数
訪問回数:ブラウザを閉じたら消えるCookieのユニーク数
ページビュー:ページを表示したログの行数
離脱率 = 出口数/ページビュー
直帰率 = 直帰数(1ページだけ閲覧された訪問回数)/入口数
または 直帰数(1ページだけ閲覧された訪問回数)/訪問回数
商品購入、資料請求、会員登録数を成果とする場合、成果直前にあるフォームはCVRが高くなるので、同じ階層のコンテンツ同士や類似するコンテンツ同士で比較する
フォールアウトレポートでユーザーの回遊が一部可視化できる
Javascriptの活用で読了率を取得できる
NoMatch率 = 検索結果が0の検索回数(NoMatch数)/検索総数
再検索率 = actionとnext_actionが共にsearchの数/actionがsarchの数
ー再検索ワードも取得可能
検索離脱率 = actionがsearchでnext_actionがnullの数/actionがsarchの数
ー検索離脱となった検索ワードも取得可能