スキルアップしたい

機械学習で奥さんの浮気を予測してみた~目指せ文系データサイエンティスト~

2019年6月11日

  1. HOME >

機械学習で奥さんの浮気を予測してみた~目指せ文系データサイエンティスト~

2019年6月11日

機械学習で奥さんの浮気を予測してみた~目指せ文系データサイエンティスト~

 

今年度よりpythonによる機械学習のを学習中。

ネットで浮気調査のデータを見つけたので、こちらを元にデータモデルを作成し、実際に私の嫁の浮気を予測してみました。

kaggleのタイタニックを終えたあたりの人におすすめの内容です。

 

本記事の信頼性

 

大手IT企業でデータサイエンスを活用した受託分析業務に携わっています。

元営業という異色の経歴を活かしながら、金融・製造・流通業のお客様を中心にAI活用コンサルや定着支援・人材育成・講演活動など、幅広く活動しています。

ヤエリ(@yaesuri_man

普段のお客様との会話の中でよく話題に上る内容。

名だたるデータサイエンティストの先輩を差し置いてあまり大それたことは言えませんが、ド素人である文系営業出身の私ならではの視点での紹介は喜んで頂けることが多いです。

 

データセット

 

 

1974年とかなり古いですが、イエール大学が行った浮気アンケート調査のデータです。

妻の年齢や学歴、職業、子供の人数等情報に加え、浮気経験有無が入っていますので、こちらを元に機械学習でモデルを作っていきたいと思います。

上記ページには色々なデータセットが載っていますが、中央下部右側の「affairs.txt」が対象データになります。

 

直接リンクは以下。

 

データの説明

 

2つ目の英語の論文のP10にカラム名の説明があります。

英語ですがそれ程難しくはないです。

 

データの確認

 

txtをExcelに読み込むと、初めの601行が15列、後ろの6,366行が14列となっていますので、量の多い6,366行のほうを使用します。

論文に書かれているデータの説明は以下の通り。

 

◀スマホは左スクロールで表示できます

No 名称 説明
1 ID
2 constant ※未使用
3 v1 幸福度(1:悪い~5:良い)
4 v2 年齢
5 v3 結婚年数
6 v4 子供の数
7 v5 信仰度(1:無宗教~4:強い)
8 v6 最終学歴
(9:小学校、12:高校、14:一部の大学、16:大卒、
17:一部の大学院、20:高度な学位)
9 not used ※未使用
10 v7 妻の職業
(1:学生、2:農業、3:ホワイトカラー、
4:教師・カウンセラー・ソーシャルワーカー・看護士・芸術家・作家・技術者、
5:管理職、6:高度な専門家)
11 v8 夫の職業(上の妻の職業と同様)
12 yRB 不倫の指標
(不倫した相手の人数÷結婚年数)
13 not used ※未使用
14 not used ※未使用

 

つまりyRB:過去に不倫した相手の人数÷婚姻年数 の値がポイントです。

この値が大きければ大きい程ヤバイ奥さんということになります。

ちなみにデータの最大値は57.6。

この方は結婚して2年半なので、その間に144人もの男性と不倫したと自己申告をしているという恐ろしい方です。

 

前処理

 

欠損の無い綺麗なデータのため特に前処理などは必要無いと思います。

私はExcel上で以下の特徴量を加えました。

 

◀スマホは左スクロールで表示できます

追加特徴量名 意味
first_marriage_age 初婚年齢 年齢-結婚年数
target 不倫有無 不倫指標≠0なら、1

 

生データの不倫指標は分かりづらいため、0 or 1のカテゴリ変数として「target(不倫有無)」を加え、これを予測ターゲットとしました。

0なら浮気実績無し。1なら浮気実績ありということです。

上記データをExcelで相関分析した結果が以下です。

 

 

これを見る限りでは、ターゲットと強い相関のある特徴量は見い出せませんでした。

 

嫁の特徴量

 

一方、私の奥さんの特徴量は以下です。

 

◀スマホは左スクロールで表示できます

カラム名 嫁の属性
ID 適当に入力 99999
happy たぶん幸福度はMAXと思いたい 4
age 39歳 39
years_married 結婚15周年 15
kids 子供2人 2
religion 無宗教 1
education 14に近しい学歴 14
occupation カテゴリ4に近しい職業 4
husbands_occupation 高度な専門化と思いたい 6
first_marriage_age 24歳 24

 

上記データを「test.csv」としてtrainと同ディレクトリに配置します。

 

データモデル作成と予測

 

前処理が終わったところでいよいよデータモデル作成にとりかかります。

pythonをインストールしていない人はこちらをどうぞ。

 

Python挑戦記1 まずはPythonのインストール~目指せ文系データサイエンティスト~

続きを見る

 

実際に私が書いたコードは以下の通り。

と言ってもただデータを読み込み、列を定義してLightGBMに突っ込んだだけです。

※冗長だったり間違いがあると思いますので、是非ご指摘をお願いします。

 

 

予測結果

 

  • モデルのAUC:0.756
  • 嫁の浮気確率:0.6006

データモデルのAUC=0.756という値は、予測テーマにもよりますが、実務上十分運用に耐えうる精度です(つまり確からしいデータモデルと言えます)。

浮気確率は0から1の間を取ります。

つまり確からしいデータモデルが0.6(60%)と言っているということです。

私には少々ショックな結果でした。。。

 

機械学習で奥さんの浮気を予測してみた~目指せ文系データサイエンティスト~まとめ

 

少し冷静になって、Random Forestでfeature_importancesを調べてみました。

各特徴量の中で浮気に効いている因子は以下の通りです。

  • 幸福度が低ければ低いほど浮気しやすい
  • 信仰度が低ければ低いほど浮気しやすい
  • 結婚してからの期間が長い程浮気しやすい
  • 年齢が高ければ高い程浮気しやすい

今から年齢や婚姻期間を変更することはできませんので、私が取りうる対策は

  • 奥さんの幸福度を高める
  • 宗教に入信させる

であることが浮き彫りになったと、そんな結果になりました。

 

その他、pythonやkaggle、AI・機械学習といった記事のまとめはこちらです。

【2020年版】プログラミング関連の記事まとめ~目指せ文系データサイエンティスト~

続きを見る

ここからは、実際に私が購入し、おすすめできると思った本やオンラインスクールを紹介します。

 

機械学習のための「前処理」入門


 

まずはこちら。「機械学習のための『前処理』入門」です。

  • これから機械学習を始めてみたい
  • kaggleやSIGNATEにチャレンジしてみたい

という方には最適な本で、個人的には一番のおすすめです。

 

データモデルの精度向上には特徴量エンジニアリングが不可欠、というよりこれが全てと言っても過言ではありません。

各種環境準備の方法やコーディングの詳細に至るまで、誰にでも分かりやすく書かれています。

この一冊さえあれば、とりあえずkaggleにトライすることができます。

 

 

Udemy「みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習」


 

ベネッセが主催する、プログラミング未経験者を対象にしたコース。

数学や統計的な知識はそこそこに、文字通り人工知能と機械学習をゼロから学習できます。

受講生2万人以上、4千人以上の評価者から、5段階中4.0の評価を得ている、万人におすすめできる優良講座。

定価15,000円と高価ですが、90%OFFといったキャンペーンを頻繁に行っていますので、それを狙うのがおすすめ。

 

人工知能は人間を超えるか


 

pythonのコーディングからは離れますが、もしこの本を読んでいない人がいたら必ず一度は目を通しておいた方が良いです。

 

この界隈では有名な、東大の松尾豊先生の著書「人工知能は人間を超えるか」。

 

いわゆるAI・人工知能、機械学習といった昨今のキーワードを中心に、過去の歴史からここ最近の動き、今後の動向に至るまでを、平易な表現で丁寧に解説されています。

 

また日本ディープラーニング協会が開催する「ディープラーニング ジェネラリスト検定(通称:G検定)」の推薦図書の一つでもあります。

 

全てのビジネスマンにおすすめできる一冊。中古でもkindleでも構いませんので、これだけは目を通しておいた方が良いです。

 

-スキルアップしたい

Copyright© 営業アップデート , 2020 All Rights Reserved.