ぼくのずるやすみ 26

ほんとはずるやすみじゃないよ!

バイアスとバリアンスに関するメモ

あの子が僕を好きな確率は!?

条件つき確率ってなんなのよ!

統計学というか、確率について勉強していると、「条件つき確率」という考え方に出会います。条件つき確率というのは、異なる事象AとBがあったときに、Aという事象が起こるということを条件としたときに事象Bが起こる確率はどのくらいか、ということを意味しています。

条件つき確率でよくな~い?

条件付確率という言い方をしてくれれば結構わかりやすいんですが、条件つき確率の応用で、「事前確率」とか「事後確率」について考えなさい、ということを問題として問われることがあります。

僕はけっこう、この事前・事後確率というのが苦手でした。問題の解説とかを見て、その解法のプロセスは理解できるのですが、事前・事後ってどういう意味なの、と思っていました。

事前・事後確率ってなんなのよ!

普通の条件つき確率を考えるときは、条件がまずあって、そのうえで結果である別の事象が生じる確率を考えます。でも、事前・事後確率というのはこれとは逆の考え方を基本にします。つまり、「ある結果としての事象 B がまずあって、その結果をもとにその結果をもたらす原因の一つである A という事象の発生確率を考える」ということです。

この時、B という結果について何も知らない状態で原因である事象 A の確率を考えることもできます。同様に、事象 B という結果が得られたという前提での事象 A の確率を考えることもできます。そして、事象 B という結果を踏まえて考えた事象 A の確率というのは、事象 B に関する情報がなかった時に考えた事象 A の確率とは異なっているということがありえます。これを、事象 B に関する情報によって事象 A の確率が「更新された」という言い方をし、この更新「後」の確率という意味で「事後確率」という呼ばれ方や、更新「前」という意味で「事前確率」という呼ばれ方がされるわけです。

具体例:ボクくんのカタオモイ

具体例を示します。例えば僕が誰かに片思いをしているとしましょう。僕にはその女の子が僕のことをどう思っているかわからないので、「等確率の世界」の前提に基づいて、「好き」と「好きではない」という2つの事象についてそれぞれ 0.5 の確率を想定します。

ある日、一緒にランチに誘ったとして、その時にやたらボディタッチをされたとします。すると、「ボディタッチをされた」という「結果」に基づいて、「あの子が僕のことを好きである確率」を 0.5 から 0.75 とか(たとえば)に更新します。この時、0.5 というのが、あの子が僕を好きであるという事象に関する「事前確率」で、0.75 というのが「ボディタッチという事象によって更新された後の確率」という意味で「事後確率」になります。

具体例:あいつの待ち牌は!?

その他にも、たとえば麻雀をしているときに、ゲーム開始直後は、一緒にゲームをしている相手が国士無双を狙っている確率というのは、一般的な牌としての揃えやすさに基づいて考えるしかありません。しかし、ゲームが進むにつれて「捨て牌」という情報が与えられます。つまり、「特定の形の捨て牌」という事象が結果として得られるわけです。結果としての捨て牌という事象によって、その相手が国士無双を狙っている確率というのが更新されたと言えます。これも事前・事後確率の具体例です。

3P + P

ボクにとっては身近です

父が保険の募集人という仕事をしているので、保険は僕にとって身近です。
マーケティングやビジネスの勉強をするとなったときに、保険について考えてみるのがやりやすかったので、考えてみました。

3P + P

僕も最近まで知りませんでしたが、保険会社ってマーケティング・ミックスを保険会社の中で完結させていないんですね。完結させてないというか、広告・販促政策の「販促」の部分を外注するというやり方をとっているんです。つまり、保険会社って「3P + P」って感じの構造になってるってことですかね(Product, Price, Place は保険会社が担い、Promotion は外部の主体が担うという構造ということ)。

だから、保険会社というのは、基本的には自分で顧客(法人ではなく個人)に対する営業はあまりしないのが一般的なようです。では、誰が保険商品を売っているのかというと、「保険代理店」という組織が販売の役割を担うことが多いみたいです。

なんでこんなカタチなんだろう

こういう形になった理由は僕には正直よくわかりませんが、従業員を抱えることなく販売ができるのでリスク管理がしやすいとか、販売の在り方として「複数の保険商品を比較して提案できる状態」が顧客にとって最もメリットがあるからとか、あるいは保険という商品の性質として人口のほぼすべてが顧客にもかかわらず、マスに対する均質的な広告や販促と相性が悪いので保険会社が単体でそれに対応するだけの営業部隊を抱え込むのは難しいという事情があったからとか、理由はいろいろあるのかもしれません。

やりにくさもありそうだよね

ただ、この構造には結構やりにくさもありそうだなと思います。
まず、保険という商品はすでに市場にかなり浸透しているので、新規顧客を見つけるというのはかなり困難です。特に人力で訪問などというやり方は非効率にもほどがあります。そうなると、既存の顧客の契約更新管理と、更新時などの商品の横展開などで顧客単価を上げることが必要になるわけですが、ペーパーレスや通信技術の進歩もあり、この辺の業務はそれほどマンパワーが不要になっています。なので、販促に必要な労働力は、現状においては保険会社でも十分管理できるように思います。

また、人力で足を使った新規開拓が非効率化する中で、マスメディア(Webを含む)を活用した顧客との接触の重要性が増しているように思います。もちろん、個々の顧客ののライフスタイルに合わせた保険の提案の重要性は変わらないので、訴求する商品は、ニーズが顕在化している最大公約数的な商品になります。こうしたマスでの集客が中心になると新たな顧客情報は保険会社に集まります。保険会社としてはここから、商品の横展開を狙っていきたいわけですが、販促部門を持っていないので、それが難しいです。そのため、代理店がそれを担うことになるわけですが、これもまた非効率です。

依然として、顧客にとっては複数の保険会社の商品を比較することを通じて最適な商品を選べることが大きなメリットではあり続けていますが、新規顧客が代理店ではなく保険会社に集まる構造上、代理店は保険会社との関係性を良好に保つ必要性があり、そのための一つの戦略が特定の保険会社への専業化を通じてロイヤリティを示すことだったりもします。そうすると、最後の砦的なこの顧客にとってのメリットさえ、揺らぎつつあると言えるのかもしれません。

マーケティングとアルゴリズム設計

マーケティングってなんなのよ?

マーケティングとは何か、という問いについて、「ものやサービスが売れるしくみをつくること」というような回答が与えられることがあります。この「ものやサービスが売れるしくみ」は、プログラミングによるアルゴリズム設計と重ね合わせると理解しやすいです。というか、マーケティングというのは、まさにアルゴリズム設計で、最適化問題のひとつです。

アルゴリズムってなんなのよ?

アルゴリズムは問題解決の方法やプロセスを意味します。問題という以上、常に何らかの目的があります。例えば、何かの作業効率を最大化することや、何かがある条件を満たしているかを判定する、などの目的です。

プログラミングを使ったアルゴリズム設計では、このような与えられた問題に対して、解決までプロセスを検討します。そのうえで、コンピュータという演算処理装置をプログラミング言語で記述した指示によって制御し、与えられたデータ(条件)に対して設計した通りに処理を行うことを通じて、最終的には問題を解決します。

マーケティングってアルゴリズム設計だ!

そして、アルゴリズム設計における、目的、演算装置、処理するデータというのは、マーケティングにおける、目的、マーケティングミックス諸要素(いわゆる 4P)、市場(顧客集団)と重なります。前提として、ニーズがあれば、ものやサービスは売れるだろうと考えます。なので、ここでいうマーケティングの目的とは、「市場のニーズを創造、開発し拡大すること」です。

つまり、マーケティングというのは、特定の市場に対して、マーケティングミックス諸要素(製品政策、価格政策、広告・販促政策、チャネル政策)というツールを用いて働きかけることを通じて、当該市場のニーズを最大限に創造、開発し拡大するアルゴリズムを設計し、それを実行することであると言えます。

こう考えると、マーケティングって最適化問題のひとつですよね。

今度、誰かに「マーケティングって何?」ときかれたら、ぜひこう答えてください。僕はそうします。

ともだちサービス 【感情利用量上限ありプラン 会員ランク制あり】

富士山ってひとりでのぼってもいいんですか?

誰かと深く関わるとき、つらい、と感じることが多い。
僕は、深くかかわった人とは大抵ぶつかってしまって、それっきりになっちゃいます。
だから、僕には友達があまりいません。大体の場合、ともだちサービスの感情利用量上限を超えた利用が原因で契約解除になることが多いような気がします。

ともだちサービス【通常プラン】について

この社会で生きているひとは、「ともだちサービス」を提供しています。
関わる相手それぞれに決まった感情利用量の上限を設定していて、その範囲内で、共感したり、同情したり、心配したり、怒ったり、悲しんだりしてくれます。

感情以外にも、時間利用もサービスに組み込まれていて、暇な時間を一緒につぶしてくれたり、たいして面白くなくても話を聞いてくれたりします。

会員ランク制度

会員にはランクがあり、親友、恋人など、いくつかの区分があります。
そして、この区分に応じて利用できる感情や時間の上限が変動します。

契約条件

この契約の条件の一つは、相互契約を結ぶことです。
だから、誰かとこの契約をする場合、自分もその相手に同様のサービスを提供しなければなりません。

注意事項

この契約には、書面のやり取りがないので、サービス提供者に期待できる感情利用量の上限が利用者にはわかりません。そのため、少しずつ調整しながら利用することが推奨されています。多くひとは、おそらく自身が他者に提供しているサービスの内容をもとに、相手にも同様のサービスを期待しています。そして、その期待内容に大きな差がないため、全体的にスムーズに機能しています。

もちろん、このような曖昧さを前提とするサービスなので、トラブルも絶えません。
利用上限を超えた感情利用や、会員区分に関する誤解が原因のトラブルなどが、日々、報告されています。

このよう事態が発生した場合、それがきっかけに契約内容が明示的に見直され、よりスムーズなサービス提供が行われるケースもありますが、契約解除となるケースも多いのが現状です。

ですが、心配ありません。
なぜなら、仮にある相手との間の契約に問題が発生し、契約解除となってしまったとしても、ほかにいくらでも同様のサービスを提供している人がいるからです。

トラブル事例:ボクくんのケース

例にもれず、僕もこのサービスを提供していますが、どうやら僕が提供するサービスの内容は周りの多くの人とは異なっていることが、最近わかってきました。

最大の違いは、僕の提供するプランが「感情利用量上限なしプラン」であるというところです。僕の場合、契約している顧客が他の人よりも少ないので、提供できる感情が豊富にあり、それがこのプランを実現しています。

ただ、自分がこんなサービスを提供しているばかりに、周りの人にも同じようなプランを期待してしまいます。そして、相手が提供するサービスの上限を超えて相手の感情を利用しようとしてしまい、規約違反で契約解除されてしまうのです。

それがわかっているんですが、どうにもそこが割り切れなくて、毎回同じことの繰り返しになります。

好きだけどキライな「やさしいひと」

ひとってだいたい、やさしいことがほとんどです。言い換えれば、「同情」とか「心配」という感情を誰に対しても向けてくれる用意ができている人がほとんどで。だから、弱音を吐いたり、苦しさを吐露すると、やさしくしてくれる人が多いです。

でも同時に、僕から見ると意外に、他人に関心がないひとがほとんどです。そういう感情利用上限は、僕にとっては意外に低く設定されています。だから、最後には「めんどうくさい」と思われて終わります。

やさしくてつめたいのが他人だと、僕は思っています。
わかっているけどそれがなかなか呑み込めなくて、「最終的に面倒になるなら、初めから関わらないでくれ」と思ってしまうことも多いです。
でも、中途半端なやさしさでも、やさしさはやさしさだということもわかります。貰ったものに対しては、ありがとうと思います。

ただ、トータルで見ると「つらい」という気持ちの方が大きい気がしています。
だからなるべく、他人と深くかかわらないようにしようとは思っています。
だけど、ひとりでいるのは、やっぱりけっこうさびしいので、やさしいひとと出会って、その人との付き合いが長くなってくると、それを忘れてしまいます。そして同じことを繰り返して、つらい気持ちになって終わります。

僕は、やさしいひとが好きですが、同じくらいキライです。

ずるやすみの宿題 

機械学習スクレイピングを使いこなしたい!

仕事をおやすみし始めた7月中旬から今日までの 4 か月間はいろいろあったけど、ずっと統計学Pythonの勉強、特に機械学習スクレイピングの分野の勉強をしていました。それは、今の会社とは別の場所でマーケティングリサーチの仕事ができるようになりたいと思っているからです。

今日までの期間で、パイソンに関する基礎知識はある程度身に着けたので、ここからは実践的な練習を重ねていきます。具体的には、下でまとめたような内容で進めることを考えました。ちなみに、このブログは、きっかけとしてはこの実践のアウトプットをする場所としてつくったものなので、進捗はここに記事として書いていく予定です。

予定している取り組みとその概要

動画の再生回数を説明する変数の分析

YouTubeAPI を使ってYouTube Japan の動画に関する情報を取得する。

動画の再生回数を被説明変数として、チャンネル登録者数やチャンネルの動画数、チャンネル全体の平均再生回数などを特徴量として重回帰分析を行う。

思いがけず再生される動画の条件(サムネイルの固有画像、動画タイトル、など)

重回帰分析によって導いた変数(度の変数を用いるかについては、重回帰自体のモデルを改善する度に変更する)によって予測される予測値よりも一定の基準を越えて上回ったサンプルについて、再生回数が予測よりも大きく引き延ばした要因について、検討する。

どれだけ離れているデータを条件を満たすサンプルとして使用するかの設定方法についても検討する。標準化とシェビチェフの不等式を用いて任意で設定できるのではないかと考えている。実現値と予測値の差について計算して、その差について標準偏差を計算したうえで、シェビチェフの不等式を用いて閾値を決めることにする。

標準偏差とシェビチェフの不等式を用いて閾値を決めた場合、正解データと不正解データの量に偏りがあるデータになるので、検証においてはデータ分割方法に工夫が必要になる。

YouTube Japanにある動画の主成分

YouTube Japan で公開されている動画について、自然言語分析と主成分分析を用いて特徴量の抽出と類型化を行う。

そこで得られた類型ごとに再生回数や各類型に含まれる動画の本数などを整理して、類型ごとの特徴についても検討する。

転職サイトの求人情報比較

スクレイピングとクローリングのみで完結するが、日本国内にある求人媒体について、掲載されている求人の情報をスクレイピングして内訳などを整理することで、各媒体の特色や目的に応じた媒体の使い分けについて考える。

日本人の性癖の主成分とその時系列的な変化

DMMのサイトから、動画のタイトルを取得して、タイトルについて自然言語処理と主成分分析によって、日本人の性癖の主成分を抽出する。

自分の好みにきっと当てはまる女優さんを分類する機会学習プログラム

DMMサイトの女優さんのページから画像データをスクレイピングして、その画像の幾つかについて、その顔について好みかどうかを意味するラベルを付けて正解データにする。

画像から顔を判別して抜き出すスクリプトとその顔の情報から分類ラベルを予測する機械学習スクリプトを書く。これを用いて、自分のタイプだけど、まだ自分が知らない女優さんが出ている動画にたどり着けるようにしたい。

興味がある企業の採用ページについて、更新があったら通知を送るプログラム

機械学習はあまり関係がないが、JRECINのサイトに掲載されている求人について、特定の条件に該当する求人情報を取得するプログラムを書く。さらに、特定の条件の求人に関して情報更新があった際に通知を発火するようなプログラムも組み合わせて、新規求人の確認作業を効率化できるようにする。

 

がんばるぞ!

たすけてヘントーマン

「メガネのつるが折れたんです。」

それは突然の出来事でした。僕はその日もいつもと同じようにシャワーを浴びていたんですが、顔を洗うためにメガネを手に取って、つるを胸に押し当てるような形でメガネを折りたたもうとしたんです。

ぽき。

メガネのつるが折れる音でした。大学生の頃からトレーニングを続けているばっかりにこんな仕打ちを受けるなんて。この時ばかりは、思わず左の大胸筋に強い言葉を使ってしまいました。気が付くと、すっかり縮こまって申し訳なさそうにしていたので、僕はあわててフォローして、そのあとは一緒にジムに行きました。帰ってきて確認するとさっきまでの姿がウソみたいに大きく自信ありげだったので、大丈夫だと思うのですが、彼はまだ気にしているのでしょうか。こんな僕はもしかして、いわゆる DV 男なのでしょうか。ちょっぴり不安です。

悪魔との契約

僕のマッスルくんがそんな不安を抱えていることはつゆ知らず、「しめしめ」と僕は思っていました。友だちを誘って出かける口実ができたと思ったからです。
「メガネのつるが折れちゃったから、一緒に買いに行かない?」これをいうために、友だちとのライングループのトーク画面を開きました。そして、考えました。

「いきなり誘うのも、なんか違うかな」

なお、そのライングループには女の人いなかったほか、照れて恥ずかしくなってしまったことを自白する用意が僕にはあります。そうです。僕はとんだシャイボーイ野郎だったのです。もちろん、僕は右の上腕三頭筋に目をやりました。こんな時、頼りになるのはこいつしかいません。でも、何も言いません。肝臓みたいな形のボクの上腕三頭筋は、沈黙の臓器ならぬ、沈黙のマッスルを目指していることを、その時の僕は忘れていたのです。

ですが、「大切なことはみんな、マッスルが教えてくれる」という格言があるように、その時もマッスルは一筋の光、いや、無数の筋繊維のような答えを与えてくれました。

「呼びました?」

次の瞬間、僕はライングループに、そうメッセージを打ち込んでおくっていました。
その刹那、トーク画面上のいくつかの「?」のなかにひそむ「呼んでないけど」という文字列を僕は見逃しませんでした。何かの見間違いだというひともいるでしょう。でも、この胸のズキズキがなによりの証拠でした。

「呼びました?」

ダメ押しのもう一発。「?」の嵐のなか、もうだめかと思った瞬間、救いは訪れました。

「どういうこと?」

それは、掘り下げコメントでした。

天使と悪魔

「あ、減量の悪魔と契約した、ゲンリョーマンなんだけど、呼ばなかった?」

さすがは自分の体の重さに敏感な女という集団、減量の悪魔という言葉にはなかなか食いつきがよく、ボディビルダーとラインをしているのかと錯覚する程でした。もしも僕が減量末期のボディビルダーだったなら、きっと騙されていたことでしょう。糖分不足って怖いですね。
しかし、これが落とし穴でした。僕の「ゲンリョーマン発言」は、いわゆる完全な「出オチ」であり、スタートでありゴールだったのです。これはもう、ゴール直後のマラソンランナーに、よーいどん!、と言っているようなものです。

「ゲンリョーマンは何ができるの?」

「えっと、、、その、相手をやせさせます」

「どうやって契約するの?」

「え、、それは、、、脂肪とか渡して、、、」

「でも、減量の悪魔なのに痩せさせてくれるって変じゃない?
減量への恐怖で生まれた悪魔なら太らせるとかじゃないの?」

「それは、、、どっちもできる、、というか、、、」

ぽき。

心が折れる音でした。
掘り下げの天使だと思ったその子は、追い込みの悪魔だったのです。
そして、日夜ジムでマッスルを追い込む僕には、追い込まれるという経験が圧倒的に足りていませんでした。

「なんかすみません」

そこから先、僕は何も言えませんでした。

メンドーマン

メガネを買いに行こうという話などできるはずもなく、もはや僕はただメガネが折れただけの男です。いや、下心のせいで、メガネといっしょに心まで折ることになってしまった男でした。

それに、こんなどうしようもないラインをしたからには、きっと裏ではメンドーマンとか言われてるに違いありません。

僕はいったいどうすればよかったのか。みんなの問いに、何と返答すればよかったのか。誰か教えて。

「たすけてヘントーマン」