こんにちは。Mocal designの佐藤です。
あらゆる企業がブランドイメージを確立するため、または常連のお客様を飽きさせないために販売促進キャンペーンを実施しています。
今回は「来月実施予定の販促キャンペーンは〇〇が特徴のお客様に効くの?効かないの?」という話をしましょう。
実際にそれが判別できたら、効果が見込めるお客様にだけキャンペーンをご案内することができるため、大幅なコストカットにつながると思いませんか?
機械学習の「分類モデル」を使えばそのような判別が可能となります。
分類とはあらかじめ定められたラベルにデータを分割することです。
結論から話しましょう。
自身が働くお店で使うなら、これまで取り溜めたデータを学習用に用意して分類ルールを定めると良いでしょう。
【分類ルール例】
・今年の「クリスマス20%OFFセール」は過去に似た内容のダイレクトメールを送った反響率が〇%以下のお客様には送らない。
・〇%以上のお客様には今年もダイレクトメールを送る。
分析結果が分類ルールの基準を超えるか超えないかでを実施するかどうか決めたら良いのです。
本来、分類モデルは「画像ベースの性別検知」や「電子メールをSPAMメールと必要メールに分類する」
といったような、分析したいデータが何の種類か判別することに使われます。
わかりやすく言えば、2つのおもちゃ箱があって10体の人形を「ウルトラマンの怪獣」と「仮面ライダーの怪人」に分ける。
そんなイメージです。
分類の手法は多数存在しますが、本日は代表的な分類の手法であるk近傍法、サポートベクターマシン、ロジスティック回帰について説明しましょう。
本日勉強すること
・k近傍法
・サポートベクターマシン
・ロジスティック回帰
k近傍法
まずはk近傍法について説明します。
まずウィキペディアで調べてみましょう。
k近傍法(ケイきんぼうほう、英: k-nearest neighbor algorithm, k-NN)
k近傍法は、ほぼあらゆる機械学習アルゴリズムの中で最も単純である。あるオブジェクトの分類は、その近傍のオブジェクト群の投票によって決定される(すなわち、k 個の最近傍のオブジェクト群で最も一般的なクラスをそのオブジェクトに割り当てる)。k は正の整数で、一般に小さい。k = 1 なら、最近傍のオブジェクトと同じクラスに分類されるだけである。二項分類の場合、k を奇数にすると同票数で分類できなくなる問題を避けることができる。 |
出典 Wikipedia
おっと!真剣に読んでいると眠たくなりそうなので、小学生にもわかりやすく簡単に説明します。
下の画像をご覧ください。
どん兵衛山という山があるとします。
どん兵衛山にはタヌキとキツネが住んでいるとしましょう。
すでに山に住んでいるタヌキとキツネはすでに認識されているという前提で話をしていきます。
そこに得体のしれない動物Xを放り込んでみます。
得体のしれない動物Xは隣のマルちゃん村から迷い込んできました。
さて、このXはキツネなのか?タヌキなのか判別しようよ!というのが分類です。
k近傍法ではまず得体の知れないXから一番近くにあるものを探します。
一番近いのはタヌキですね。
強引ですが、まずはここで「あ?君はタヌキだ!」と判断します。
次に2番目と3番目に近い動物を探しましょう。
どちらもキツネですね。
「へえ、君はタヌキに近いと思ったけど、多数決でキツネに近いと判断します!」
というのがk近傍法です。
つまり、何個のサンプルをみていくかということで、Xの正体が変わってしまうという特徴があります。
説明が簡単すぎましたが(かなり雑?)、次のサポートベクターマシンにいきましょう。
サポートベクターマシン
サポートベクターマシンは、線形入力素子を利用して 2 クラスのパターン識別器を構成する手法である。訓練サンプルから、各データ点との距離が最大となるマージン最大化超平面を求めるという基準(超平面分離定理)で線形入力素子のパラメータを学習する。最も簡単な場合である、与えられたデータを線形に分離することが可能な(例えば、3次元のデータを2次元平面で完全に区切ることができる)場合を考えよう。このとき、SVMは与えられた学習用サンプルを、もっとも大胆に区切る境目を学習する。 学習の結果得られた超平面は、境界に最も近いサンプルとの距離(マージン)が最大となるパーセプトロン(マージン識別器)で定義される。 |
出典 Wikipedia
あー!もうこの記事自体を読むのを止めようとなっている方も多いはず。
安心してください。今回もわかりやすく(雑に?)説明しますよ。
画像をごらんください。
またタヌキとキツネの話をします。
タヌキとキツネの違いを調べたところ、タヌキは果物を好むようです。
キツネは肉食なのであまり果物は食べません。
・・・ということなので、
どん兵衛山の西側にはタヌキが好きな果物を置きます。
どん兵衛山の東側にはキツネが好きな昆虫や小さな動物の肉を餌として配置しましょう。
お腹をすかせたタヌキやキツネがそれぞれ好きな餌に群がります。
餌を食べはじめたところで、タヌキとキツネの間にこのような柵を置きます。
柵から西にいるのがタヌキ、柵から東にいるのがキツネ!と判断するのがサポートベクターマシンです。
なお、境界線付近にいるキツネとタヌキの距離をはかって、ちょうど真ん中に柵を置こうよ!というのがこの考え方。
サポートベクターマシンの場合、境界線を求めるだけなので山全体を見る必要はなく、柵の近くにいる4~5匹のサンプルをとれば良いということになります。
そのため、k近傍法に比べるとサポートベクターマシンのほうが、実際の機械学習でも計算が速く軽いアルゴリズムといえるでしょう。
ここまでk近傍法とサポートベクトルマシンについて説明しました。
k近傍法では「昨日までタヌキと思っていたけれど、多数決でキツネと呼ぶことにします」
というような強引な判別がありましたが、、、
サポートベクターマシンでも柵からはみ出すキツネやタヌキがいます。
「おかんが言うには体長は60cmほどで、森林に生息しているらしいねん」
「おータヌキやないかい その特徴はもう完全にタヌキやがな」
「どうもタヌキとちがうらしいねん・・・」
ミルクボーイのネタのようですね。
ロジスティック回帰
最後にロジスティック回帰を説明します。
ここまで分類について話をしてきましたが、みなさんに質問です。
世の中で相反する物(完全に分別できる物)を10個以上あげてください。
なかなか出てこないと思います。
相反するものの例として、
善悪、白黒、高低、軽重、男女、有無、硬軟、寒暖、増減、
老若、生死、進退、上下、前後、左右、明暗、大小、開閉 |
などがあげられますね。
実は上記のなかでも、中間やあやふやな部分があると思いませんか?
例えば、たった1%の良心の欠片もない悪者っていますか?
グレーは白と黒どっちに入りますか?
ビルの2階は高いか低いかという質問を1万人にしたらどうなりますか?
このように世の中、完全に相反するものって意外と少ないもの。
いくら機械が高度な分析したところで、間違いや判別不能になるケースはよくあります。
結局そのあやふやな部分の答えが正解かどうかはその人の価値観によって違いますが、分析する人間がしっかり機械に教えてあげましょう!
人間「機械さん!これはキツネだよ!」
人間が機械に定義することが必要なことから、分類モデルは教師あり学習と言われます。
それに対して、前回勉強したクラスター分析は教師なし学習といわれます。
クラスター分析は機械が勝手にグループ分けしてくれましたよね。
さて、話をロジスティック回帰に戻します。
はじめて聞く言葉ばかりで困りますね。
またウィキペディアを見てみましょう。
ロジスティック回帰(ロジスティックかいき、英: Logistic regression)は、ベルヌーイ分布に従う変数の統計的回帰モデルの一種である。連結関数としてロジットを使用する一般化線形モデル (GLM) の一種でもある。1958年にデイヴィッド・コックス(英語版)が発表した。確率の回帰であり、統計学の分類に主に使われる。医学や社会科学でもよく使われる。モデルは同じく1958年に発表された単純パーセプトロンと等価であるが、scikit-learnなどでは、パラメータを決める最適化問題で確率的勾配降下法を使用する物をパーセプトロンと呼び、座標降下法や準ニュートン法などを使用する物をロジスティック回帰と呼んでいる。 |
出典 Wikipedia
あ!今度は読み飛ばしましたね。
ずるい!!!
ロジスティック回帰も簡単に説明しましょう。
サポートベクターマシンでは柵をこえたキツネが発生しましたが、
そのようなことがないように、境界線を直線ではなく緩やかな曲線で引こうよというのがロジスティック回帰の考え方です。
そのあやふやな特徴を言語化し、定義できるなら特徴として再学習させると良いでしょう。
・タヌキは全体の体色が灰褐色(タヌキを模したキャラクターなどによく使われる茶色は、実は幼獣の頃の体色)
・タヌキは目の周りと脚が黒い
・タヌキは基本的に夜行性
・キツネは細身の体型
・キツネは大きな耳、大きなしっぽ、モフモフな被毛が特徴
・キツネは群れを形成しない
・キツネは穴を掘って餌を埋める
このように特徴を増やしてあげることでタヌキとキツネとの違いは更に判別しやすくなります。
ただし特徴が増えすぎると、コンピュータの出した結果が(人間にとって)判別理由のわからないものとなります。
そのような場合は前回クラスター分析で説明した次元削減や主成分分析を行って
「どの特徴を加味した結果なの?何を考慮して判断したの?」
という特徴の主成分を導き出すと良いでしょう。
次元削減や主成分分析についてはこちらをご覧ください。
以上、本日は分類モデルについて簡単にご説明いたしました。
冒頭で説明した通り、当社では機械学習をつかったキャンペーン予測などを行っています。
実際には課題ごとに本日説明したk近傍法、サポートベクターマシン、ロジスティック回帰を使い分けることになるでしょう。
具体的に当社では機械学習を用いた分類を
・numpy (数値計算のライブラリ)
・Pandas(データ解析を支援するライブラリ)
・Matplotlib(グラフを描くライブラリ)
・scikitlearn(クラスタリング、回帰、次元削減、分類に使うライブラリ集)
を使って行います。
「顧客の特徴をつかんで販促キャンペーンの効果がある方にだけ、ダイレクトメールを送りたい」
「話だけ聞いてみたい」
という方はビデオサービスZOOMを使って20分の無料コンサルをすることができますので、是非ホームページのCONTACTページからお問い合わせください
(通常コンサルは30分5,000円です)。
小平でホームページ制作、経営コンサルティング
mocal design 佐藤 大樹
東京都小平市南町1-27-10
✉ info@ofb.jp
☟トップページはこちらから