XD.LOGSTORAGEに保存されたアクセスログをPythonで取得

こんにちは!
分析官のMです。

最近、業務でHIRAMEKI XDというマーケティングプラットフォームに触れる機会がありました。 HIRAMEKI XDにはwebサイトのアクセスログをユーザーに紐付けて収集・整理することができるXD.LOGSTORAGEという機能があります。 保存されたアクセスログGUIで取得できるのですが、API(ログストレージAPI)を利用して取得することもできます。

本記事ではXD.LOGSTORAGEに保存されたアクセスログをログストレージAPIを利用してPythonで取得する方法を共有します。

ログストレージAPIの仕様

大まかな仕様は以下の通りです。

サーバリクエストパターン

https://www.xdata.jp/report/v2/api/storage/download/[site_id]/[targtet_date]/[profile_id]

[site_id]には契約時に発行されたサイトID(6桁)、
[targtet_date]にはダウンロードしたいアクセスログの日時(YYYYMMDDHH)、
[profile_id]にはダウンロードしたいログのプロファイルID(アクセスログの場合は"0000000001")を入力します。

ユーザ認証

APIログイン認証はBasic認証です。
HIRAMEKI XDにログインする際のメールアドレス、パスワードを利用します。

実装

今回は2020年9月1日 0時台のアクセスログをzip形式で取得してみました。
下図がそのコードになります。

f:id:gri-blog:20200920172559p:plain

2行目:HTTPライブラリのrequestsをインポート
5~8行目:URLを指定
11,12行目:メールアドレスとパスワードを指定
15行目:アクセスログ取得
18,19行目:ログ格納先を指定
22,23行目:ローカル環境に保存(デコードされていない状態のアクセスログをres.contentで取得)

さいごに

XD.LOGSTORAGEに保存されたアクセスログは基本的には1時間単位でしか取得できないので、 例えば1か月分のログをダウンロードする場合、GUIだと約720(=24h×30日)回、ダウンロードボタンをクリックする必要があります。 それに対し、ログストレージAPIとfor文を駆使すれば、1回のPython実行で任意の期間のログをダウンロードすることができるので、近々実装してみたいと思います。
APIリクエストは1分間に30回までという制約があるので、そこは注意が必要ですね...

DeepFakeでBaka Mitai/Dame Daneつくってみた

MIT Technology Reviewの記事で、海外で「龍が如く」の「ばかみたい」をDeepFakeで画像から勝手に口パクさせるのが流行ってるとのことで、Kapwing Appさんのチュートリアルにしたがって、やってみました。

できたもの


Baka Mitai/Dame Da Neつくってみた この動画を作るのは1時間半くらいかかりましたが、実際の作業は数分で完成します。


DeepFakeのソース画像、Driving動画、アニメーションされた動画 ソース画像は動きのない画像(左)で、それをDriving動画(真ん中)に合わせて、無理やり画像をアニメーション化させること(右)を機械学習によって行います。

構成図

f:id:gri-blog:20200912133551j:plain チュートリアルに従って作ってみたときの構成図です。メインで使うのはColaboratory上のPython Notebookです、これはAliaksandrSiarohinさんが用意したデモ用のノートブックで、これをポチポチとボタンを押していきます(コーディングをしなくてもデモで自分用の動画を作れます)。コードはAliaksandrSiarohinのGitからcloneさせます。自分で動画を作るためのソース画像(動かしたい画像)、Driving動画(動きを真似する元動画)、チェックポイントファイル(顔の特徴点の関係性を定義した訓練済みデータ)をGoogle Drive上に入れます。なお、今回の時間の大半は1時間20分くらいは、このチェックポイントファイルをニュージーランドのファイル共有サービスから持ってくるのに時間がかかりました(700MBくらいのファイル2つ)。もしかしたら、AliaksandrSiarohinさんのドライブから持ってきたら、もっと速いかもです。また、画像、動画の編集などはオンラインで使えるKapwingを使いました。

元となっている論文(First Order Motion Model for Image Animation)

f:id:gri-blog:20200912141312j:plain

この論文で提案されているアルゴリズムは、従来のkeypointのアノテーションを大量に必要とするアルゴリズムと異なり、対象物の事前知識なしに使えるところが、手軽に使える点です。

元となっているモノマネ動画


Lip Sync Shun Akiyama Baka Mitai (Yakuza)

動きを真似するための元動画は、こちらのDobbsyrulesさんのモノマネ動画です。龍が如くの歌マネが、なぜ海外で流行っているか分からないのですが、めっちゃ面白いです。

全体として

f:id:gri-blog:20200912142056p:plain Deep Learningの訓練などがとても大変な作業ですが、ある範囲のアウトプットに限定させるAIプラットフォームが用意できるならば、手軽に利用することが分かりました。GartnerのHypeサイクルに見られる、黎明期にあるAIプラットフォームのタネは、こういうものを組み合わせたものなのだろうと思います。

古幡征史

Macとiphoneで無料ツールを使ったリアル音声字幕生成をやってみた

コロナ下の影響でウェブ会議の回数が増えていると思います。PCのスペックや通信環境によっては相手の声が聞き取りづらく、相手の音声が字幕で出すことができればいいのにと思う人も多いのではないでしょうか?今回は簡単にリアル音声字幕変換を行なってみました。

こんな人におすすめ

  • Maciphoneだけでリアル音声字幕を生成してみたい
  • 無料ツールだけで気軽に試したい
  • 複雑な設定をせずに試したい

使用するツール

字幕生成概要

UDトークの音声文字変換で生成した文章をzoomの字幕機能で表示する

実際に行なってみた


Macとiphoneを用いたリアル音声字幕変換

 

参考サイト

 

 Ohta

はじめてのデータ活用プロジェクトでのモデル作りのタスク

データ活用プロジェクトでAIモデルを短期間で構築するタスクを、どのように規定すべきか?この観点が、新入社員や転職してきた人は、抜けていることが多いです。プロとして研究やデータサイエンス業務を続けるには、モデル構築の計画立案スキルは身に付けなければいけない技術になります。

はじめてのAI活用の難しさ

慣れている人にとっては、モデル構築のタスクは当たり前のものですが、不慣れな人にとっては暗中模索の作業です。よって、全く計画を立てられないということになります。モデルを作るために何をすれば良いか分からず、計画を立てられない。計画のないプロジェクトに上司は「Yes」と言えない。仮に上司も不慣れであれば、どのように仕事を進めるべきか、上手くアドバイスすることが難しい。これが、AI活用の難しさの第一歩です。

プロジェクトの開始と目標設定

はじめてのモデル構築の目標を、自信がないためか、「XXモデルを構築すること」としたくなるかもしれません。これは、ビジネスマンとしてNGです。新しいプロジェクトで「何かの作業をする」という目標は、成果として測定できないためマネージャはOKを出しません。とは言え、XX予測モデルを構築し「利益率を5%向上させる」という目標は、はじめてモデル構築する人にとっては、根拠のない無意味な目標で、単なる願望です。また、目標の期間設定をしないため、非常に危険です。AIモデルの精度はデータの特性に大きく依存するため、やってみなければ分からないケースが多く、精度が判明するまで時間がかかることもあります。ただし、この事実を頼りにするあまり、無計画では、ダラダラと長期間のPoC(実証実験)を行った末、モデルはできたが結局は使いものにならないことが分かった、という結果に陥ることもあります。作業している本人は真面目な努力を積み重ねたので、努力を認めて欲しいかもしれないですが、「使い物にならないモデルかの判別を最小期間で行う努力をしたか?」という観点ではゼロ点と評価されます。

はじめてのモデル構築のプロジェクトでは、例えば目標を「1か月先、あるいは2か月先にモデルが使い物になる可能性があるかの判定基準を提供する」とするのが無難です。期間設定は、データの準備の時間に応じて変動することが多いです。最悪、可能性さえ分からないこともありますが、それ以上、その人に、そのタスクを任せるのは辞める決断をできます。

初期目標を達成するためのチェックリスト

初期モデルで検証をするためには、モデルに関して下記の次元にてデータの切り口を明確化する必要があります

  • ユーザ: 例えば、新規会員なのか、優良顧客なのか?
  • 商品次元: ユーザの使っている対象商品やサービス
  • 地域次元: 対象地域、購入ルート、ECなど
  • 時間次元: データ参照期間、ターゲット期間

上記の次元にて、ターゲットと特徴量の関係を明確にし、精度検証の方法を確立します

これら初期モデルを作るためには、データ分析を行い、なぜそのモデルにすべきかの理由(予測モデル構築の目的の明確化)を明らかにする必要があります。目的の典型例は、新たな顧客創造、ユーザの顧客満足向上、効果的な施策立案による利益拡大、業務自動化による省力化や高速化などが挙げられます。データ分析を実施して最大成果の範囲が見えてきますが、多くの場合、事後的に目的が明確化されることも多いです。

モデルを作成するためのタスクは下記の通りですが、まとめて考えることが多く、プロジェクトの進行と共に各タスクを詳細化して、先行タスクからやり直すことを繰り返します。

  • データ収集: 必要データの洗い出しとデータソースの特定、データ抽出方法の確定
  • データ整形: 整形ツールの選定、データクレンジング、フィルタ条件、結合条件
  • モデル作成: 機械学習であれば一枚表の作成、機械学習モデルの訓練実施
  • モデル検証: モデルは意味のあるものか?精度の検証、重要特徴量の確認

スプリントの作成

PoC実験をする際も、アジャイル開発手法のスプリント管理は有用です。1~2か月先のモデル作成までの目標、そこにたどり着くまでの1~2週間単位の目標、直近の目標を達成するためのタスクに分解を行います。スプリントを1~2週間の単位で設定し、各自が割り当てられたタスクを報告し、適宜微修正しながらプロジェクトを進行させます。時間は不可逆なので、間違えたら時間ロスが大きい不確かな要素を、できるだけ早期に分析により解決します。この不確かな要素の選定が、最も重要なスキルになり、経験と共に身に付けるべき内容です。

モデル作成の流れとその後

初期モデルを納得できるレベルと検証できたら、モデルの運用へと流れます。モデル運用自体が、大きめのテーマなので別記事にて後述しますが、こちらは、より高頻度のサイクルで実行していきます。

f:id:gri-blog:20200906160858j:plain

古幡征史

グラフ上での配色の魔力

人を惹きつけるグラフを作るための配色について解説してみます。

グラフを見てもらう

人を惹きつけるグラフを考える前に、忙しい人は「1秒以内に最初の決断をする」という事実を知る必要があります。時間をかけてデータをグラフにしても、あなたの苦労とは関係なく、見る人は即断即決で見るべきか決めてしまいます。ぱっと見、「ごちゃごちゃしている」という印象を持たれたら、それ以上は見てもらえません。人を惹きつけるには多くの工夫が必要ですが、最も簡単で効果的なものは配色です。従って、配色さえ注意していないグラフは、人に見せる準備が整っていないと言えます。

上手い人を真似る

f:id:gri-blog:20200905123256j:plain

良い配色のグラフを作るには、専門家を真似るのが手っ取り早いです。例えば、データジャーナリズムに力を入れている、The Economist誌。2019年度グラフィック詳説(Graphic-Detail)の色使いを真似するだけで、1秒の関門を通過できる確率が一気に高まります。The Economist誌の記事がグラフに力を入れているのは、読者の視線の流れの傾向が、次のようになることを調査の上で知っているからです

  • グラフや写真をまず見て
  • 次にグラフの読み方の補足説明
  • 記事タイトル
  • 記事本文

上手い人のやり方は真似した方が良いです。

自分なりの配色を作る前に

配色の真似だけでは、グラフをたくさん作っていく上で色が足りなくなっていきます。次のステップは、自分なりのカスタム配色(カラーパレット)を作れるようになることです。相性の良い色の関係を教えてくれるサイトが多く存在しますが、それらのメインターゲットはウェブページのデザイナー向けだったりするので、グラフで利用する配色としては、不適切なことがほとんどです。自分も何回か試しましたが、微妙な配色が提案され、いつの間にか使わなくなりました。そんな中で、Palettonはグラフ用の配色選びが簡単で便利です。他のサイトで上手くできないことを、Palettonができている理由を説明する前に、背景として色が、色の3属性で成り立っていることを説明します。

f:id:gri-blog:20200905124616p:plain

  • 色相(Hue): 純色(赤や青や緑などの色)を360度で表現したもの
  • 彩度(Saturation/Chroma): 純色と白または黒との混合
  • 明度(Lightness, Value): 明るさ

色の選択は、色の3属性を3次元から選ぶ行為で、さらにグラフでは何色か選ぶので、実は難しい作業です。

Palettonで自分なりの配色を作ってみる

f:id:gri-blog:20200905131417j:plain

Palettonは、この辺のことを実に見事なUI表現で克服しています。まず、色円環内(外側のドーナツ)の丸点を動かしPrimary Colorの色相(Hue)を選び、さらに対比する色相を同様に外側の丸点で決定します。これで色相は決ったので、後は彩度と明度を2次元の中(内側の円)から選択するという、範囲を狭めることに成功しています。真ん中に5つの丸点があり、5つの丸点の真ん中が、ベースとなる色の彩度と明度の組み合わせです。5つの丸点の角度や幅を変えることで、彩度と明度のバリエーションを同時に4つ選ぶことができます。

色相(Hue)とは?

f:id:gri-blog:20200905132509j:plain

色相の範囲は、どのように決まっているかと言うと、太陽光とその光を捉える瞳のメカニズムの関係から決まっています。太陽光は電磁波の内の一つですが、人の見える光の範囲が可視光線で、これは波長の範囲(380 nm〜780 nm)が対応します。光をプリズムに通すと、スペクトル(赤・橙・黄・緑・青・藍・紫)が見えます。これが色相に対応します。

発達言語から色の区別の複雑さを知る

f:id:gri-blog:20200905153819j:plain

人類は色の区別をどのように他の人に伝えてきたのでしょうか?言語としての色の区別の歴史が分かると、グラフで区別しようとしている色の複雑度も理解しやすくなります。Berlin and Kay (1969) "Basic Color Terms"の研究によると、様々な言葉の色表現の進化の歴史は類似性があり、おおよそ以下のようです。

  • ステージ1: 黒と白
  • ステージ2: 赤
  • ステージ3: 黄色と緑
  • ステージ4: 青
  • ステージ5: 茶色
  • ステージ6: ピンクとオレンジと紫とグレー

実際の雰囲気は?

f:id:gri-blog:20200905170409j:plain

Tableauのsuperstoreのデータを使って、Tableauのデフォルトの色と、The Economist風、適当にPalettonで作った配色でダッシュボード比較をしてみました。同じデータですが、印象はどのように変わったでしょうか?デフォルトのTableauの配色は判別つきやすいのは事実です。ただ、慣れてくると、またかぁ、って思われます。The Economist風のものは、ストーリを語りやすくなっています。Palettonのも、簡単に選んだ割に、ちゃんとした配色がでていると思います。配色を変えるだけで、魔法にかかったかのように、見栄えがよくなります。

まとめ

見づらいダッシュボードの典型例は、ごちゃごちゃして何を伝えたいか分からない。作者は、全部が重要だから、全部を目立たせたいので、全部派手な色になってしまった。こういうときは、今回ご紹介したPalettonなどを使って、落ち着いた配色を選んでみて、多くの色が使えない状況から、ダッシュボードを作ってみるのが良いのではないでしょうか。

参考資料

ドイツのLisaさんの記事を参考に、Palettonを使ってみたら良かったので、記事にしてみました。

blog.datawrapper.de

Palettonは、紹介した配色の選択以外にもランダムで、良い色合いが選べます

paletton.com

色の3属性や言語発達の歴史はスタンフォード大学講義資料Wikiを参考にしました。

古幡征史

Tableau認定資格 Tableau Desktop Certified Associateの合格に向けた試験準備

この記事について

Tableau Desktop Certified Associateは、Tableau認定のTableau Desktopの資格で、難易度が中級のものです。 つい先日(2020/08/29)、私もこの試験を合格し、資格を取得することができました。本記事では、その経験を踏まえ、これからこの試験を受ける方に向けて、試験準備の仕方・ポイントについて説明させていただきます。

私が行った試験準備

私のTableauのレベルは、分析官として1年半ほど業務でTableauを使っているくらいのレベルです。そんな私が試験準備にかけた時間は、全体で10hほどです。この時間で、大きく分けて下記2つの作業をしました。

  • 出題傾向、レベルの把握

  • 知識問題の対策

※実技の対策はほぼ行っていません。

出題傾向、レベルの把握

下記2記事を読み、記事内の問題を解きました。これによって、出題傾向、レベルを把握できました。特に、例題と過去問のレベルから、実技は対策なしで解けそうだと判断できました。(他にも記事を漁りましたが、この2記事で十分と言えるほど、おすすめです)

  • 公式の試験のガイド

www.tableau.com

例題があり、出題傾向とレベルが分かります。出題傾向はほぼこのままです。特に、地図、セットを使った計算など、頻出問題が分かります。レベルは、実技については、この例題のうち難しめの問題くらいのものが多かった印象です。また、知識問題については、例題と同じくらいの印象です。

  • 過去問がある記事

web-kaizen.co.jp

驚くべきことに、私の試験では、データソースは、上述記事内の過去問と全被りで、全く同じ問題もちらほらありました。この意味でも、過去問は重要です。(この記事は、過去問以外にも試験を受ける上で役立つことが丁寧に書かれているという点でもお勧めです。)

知識問題の対策

下記2冊のTableauユーザ会から出ている本をざっと読みました(読みやすく分かりやすく網羅的なのでお勧めです)。

実際に受験して感じた、試験で問われること

早く正確にやや高度な計算をする能力
  • やや高度な技術(コンテキストフィルタ、FIXEDなどの詳細レベルの計算、表計算、セット、アクション等)を使って、自分がしたい計算を実装できること

  • その実装が早く、正確なこと(検算含む)

知識問題で挽回は難しそうなので、試験時間が足りない時点で落ちる可能性が高いです。 周りの受験者で、試験時間が足りなかった人、試験時間が余った人がいます。その違いはこの能力の違いにありそうです。    

正確なTableauの用語の意味を把握した上での、詳細な知識

試験問題の日本語が直訳でやや不自然なので、問題文や回答選択肢からTableauの用語の意味の類推がしにくいです。また、問われることが細かいです。そのため、Tableauの用語の定義(例えば、クロスデータベース結合)、その関連知識を正確に知っておく必要があります。   

試験準備の反省、受験した感想

  • 上述しましたが、試験問題のデータソース、問題は使いまわしなので、過去問のチェックは重要です。

  • 私の場合、受かりましたが、知識問題の対策が不十分でボロボロでした。業務でTableauを扱っているだけで業務外で勉強をしていなければ、知識は偏っていることが多く、補填が必要と感じました。私個人の話ですが、より確実に受かる状態にしておくために、今回の対策のように本を読むだけでなく問題を解くべきでした。

  • ただし、実技ができれば、ぎりぎり受かりそうです(※75%が合格ラインで、私のスコアは80%でした)。今回、そこそこ解けた実感がありました。

まとめ

今回は、Tableau Desktop Certified Associateの試験準備について書かせていただきました。この記事が、皆さんがこれから効率的で効果的な試験準備をするための一助になればと思います。GRI寺内

機械学習(AI)の戦略策定/施策立案への利用のデモンストレーション

この記事について

先進的な企業では、機械学習(AI)をビジネスの現場で利用し、他と差をつけています。

今回は、機械学習のビジネス利用に興味があるが、機械学習で何が具体的にできるのか分からない企業様・個人様向けに、機械学習のサービス解約抑止への利用をデモンストレーションしてみます。

※注意点

  • 機械学習のプロジェクトの過程ではなく、結果何が分かるかということに焦点を当てます。
  • 機械学習のモデル作成・解釈を自動で行う、弊社サービスの「ForecastFlow」を利用します。

ビジネスのゴールの設定

「優良顧客の育成」をゴールとします。

※今回はアメリカの電話会社の顧客データを用います。機械学習のタスクとしては、電話会社の顧客の解約予測をする分類問題です。

機械学習で分かること(機械学習モデルの解釈)

解約を説明する上で重要な顧客の特徴

今回作成したモデルでは特徴量が19種類だけですが、実際の現場では、100種類以上の特徴量を用意することの方が多いです。

※特徴量とは、解約を説明する変数です。

※たくさんの特徴量が存在し得ます。例えば、年齢・性別といった個人属性、代理店や媒体といった流入経路、コンビニ支払・クレジットカードといった支払い方法とその移り変わり、サービスへのロイヤリティを表すポイント、いつサービスをどのくらい使ったかなどの変遷、キャンペーン、プロモーション、付帯サービスの利用、アプリなどの利用、季節性等。

ところで、解約抑止をするために、100種類以上の変数のうち、どれが解約を説明する上で(交互作用なども含めて)重要な変数かを知りたくなります。しかし、100種類以上の変数から、解約を説明する上で重要な変数をBIツール等で探し出すのは、工数的にかなり厳しいです。

これを可能にするのが、機械学習です。各特徴量の解約を説明する上での重要度が定量的に分かります。 

f:id:gri-blog:20200806215308p:plain

特徴量の重要度

※上記グラフでは、横軸が特徴量の重要度、縦軸が特徴量の名称です。

今回のケースでは、「日中通話料金」、「夕方通話料金」、「国際通話料金」、「契約月数」、「日中通話回数」が解約を説明する上で、重要だと分かります。また、これらの特徴量だけで、重要度が全体のうちの約50%(12.7%+11.6%+8.9%+8.8%+8.8%)を占めています。

※特徴量の重要度についての補足。ForecastFlowに搭載されている機械学習モデルは、ある特徴量を基準に顧客を解約か継続かに何度も選り分けていくモデルです。(例えば、日中通話料金で選り分け、契約月数で選り分け、...を繰り返す)今回の結果は、その選り分ける分岐のうち、約50%が、たった5つの特徴量を基準としていることを意味しています。(2020/08/06でのForecastFlowの仕様)

今回の重要度の結果で、意外だった点が大きく2つあります。

一点目について。定期的に商品が届くようなサービスや、サブスクリプションサービスで、解約予測をすると、多くの場合、最も重要な特徴量として浮かび上がるのが、サービスの継続期間です。サービスの継続期間が長ければ長いほど、解約しにくくなるのは、サービスの利用経験を重ねロイヤリティが高まるし、濃い顧客のみが残存していくからです。それと同じ理屈で、今回「契約月数」が最も重要だと予想していました。しかし、この予想は外れ、通話料金が重要特徴量のTop3を占めていました。その理由は、一つに、電話のサービスは(質や価格で)競合との差別化がしにくいサービスで、サービスの利用経験を重ねてもロイヤリティが高まりにくく「契約月数」が効きにくいから、というのがありそうです。また、今回は従量課金サービスであり、通話料金が、サービスの利便性を感じる度合いを表しているだけでなく、(サービスを使い終わった後に判明する)支払わなければならない金額でもあるため、「通話料金」が効くから、ということも重要そうです。つまり、サービスを使えば使うほど、解約しにくくなるファクタと解約しやすくなるファクタが共存していることを意味しています。この時点では、「日中通話料金」>「夕方通話料金」>「国際通話料金」の順で重要なのは、サービスの利用量(料金)が通常この順番だから(※データで確認可)だと推測していました。

もう一点意外だったのは、居住地区(州)がそこまで重要でなかったことです。定期的に商品が届くようなサービスや、サブスクリプションサービスで、大抵の場合、個人属性(年齢、性別、居住地区)等は、重要特徴量として浮かび上がります。そのうち、居住地区が重要になるのは、県民性とサービスの相性の良し悪しがあったり、サービスと土地や気候の相性があったり、居住地区が代理店や媒体といった流入経路と紐づいたりするからです(例えば、代理店によってサービスの説明の質が様々であったり、媒体によってリーチする顧客の価値観が大きく変わったりします)。今回は、州民性や、州の土地や気候との相性、州の流入経路を通じた解約への寄与は、比較的小さいと言えそうです。

重要特徴量(日中通話料金)と解約しやすさの関係

f:id:gri-blog:20200806233358p:plain

※このグラフの青い折れ線に注目してください。解約しやすさ(解約スコア)を表します。横軸:日中通話料金、縦軸:解約スコアです。

このグラフも面白いです。このグラフは、日中通話料金によって、平均的な解約しやすさが、下記のように変わることを意味しています。

  • 15ドル~23ドル:解約しにくい。解約しやすさは一定
  • 24ドル~35ドル:最も解約しにくい。通話料金が高ければ高いほど、解約しにくくなる
  • 36ドル~:解約しやすい。通話料金が高ければ高いほど、解約しやすくなる

ここから、「サービスの利便性」と「料金への不満度」に着目すると、次のような仮説を立てられます。

  • 15ドル~23ドル:「サービスの利便性」をそこそこ感じている(ただし、使っても一定である)。「料金への不満度」はあまりない(こちらも一定である)
  • 24ドル~35ドル:「サービスの利便性」を(使えば使うほど)感じている。「料金への不満度」はあまりない
  • 36ドル~:「サービスの利便性」は頭打ちし、「料金への不満度」が打ち勝つ

例えば、これらの3セグメントに分けて解約抑止施策を考えていくと、他の特徴量を使ったセグメンテーションより、かなり筋が良いです。私が安易に思いついたのは、36ドル以上は定額のオプションをサービスとして作ってみることです(収益性を考えることは必須になると思いますが)。ドメイン知識(例えば、プライベートで電話を使っている層が多いのか、仕事で使っている層が多いのか等)があれば、もっと堅実な施策を考えたり、さらに考察を深めていくこともできると思います。

※特徴量の組み合わせで解約を説明するパターンを探すとき、重要特徴量の組み合わせから仮説を立てて探していくと、やりやすくなります。重要特徴量の組み合わせで解約を見ると、単相関では分からなかった性質に気付けることもあります。例えば、代理店によって、40代以下の解約抑止が得意なところもあれば、それとは真逆で、50代以上の解約抑止が得意なところもあった、ということもあります。

重要特徴量(夕方通話料金)と解約しやすさの関係

f:id:gri-blog:20200806233353p:plain

※このグラフの青い折れ線に注目してください。横軸:夕方通話料金、縦軸:解約スコアです。

このグラフも意外でした。「日中通話料金」と全く形状が異なっています。「夕方通話料金」は、基本的に高ければ高いほど、解約しやすくなることを表しています。つまり、仮説としては、使えば使うほど、「サービスの利便性」より「料金への不満度」が打ち勝つようになっていそうです。 

まとめ

今回のような解約抑止をゴールとした時、機械学習で分かることは、大きく二つあります。

  • 解約を説明する上で重要な特徴量(人手で探すのは工数的に難しい)
  • その重要特徴量が、どのように解約に寄与するか

今回の記事では、機械学習の解約抑止のための利用を、結果何が分かるかということについてフォーカスして、デモンストレーションしました。

何かコメントありましたら、頂ければと思います。