父とkaggleと私 byアメリカ大統領予測
今回はデータ分析案件を報告するという体で、アメリカ大統領選挙の予測を書きます。
■目次
(今回のデータ分析案件がどのような構成になっているのかを簡単に説明するパート。目次だけど一番前に入れるのがベストなのかどうかよく分からないパートでもある。
パワポの魔術師の方はこの目次を資料の各パートの直前で使い、パート部分を別色にして読者を迷子にならないようにするという高度なテクニックを使う。)
・導入
・エグゼクティブサマリ
・利用データ
・モデル作成
・モデル評価
・予測結果
・まとめ
■導入
(今回の分析案件がどのようなストーリーで書かれることになったのか、読者が入りやすくするためのワクワクさせるパート。舞浜駅から東京ディズニーランドに行くまでのあの長い橋みたいなものでもある。特になくても減点されない。)
長年システムエンジニアとして社畜として働いてきたが、これからはデータ分析だよね、ビックなデータで分析したいよね(時代遅れ)と思いデータ分析が出来る部署に移動した。
マスクド・アナライズさん(データ分析界隈のサブカル担当の花形)の池袋の文教堂で開いた初サイン会に行って、マスクドさんから一番近い席に座り
キン肉マンがアシュラマンにブレーンバスターをキメているTシャツを着たブルーのいかついマスクのタレ目のマスクドさんと
メガネ姿がダンディーで素敵だった松本健太郎さんの楽しいAI界隈裏話を聞き、そして、本『これからのデータサイエンスビジネス』に震えながら慣れないサインを書いていたマスクドさんを見て
これから自分のチカラ(フリー)で稼いでいく男マスクドさんの気概を感じつつ、意気揚々とデータ分析やる気満々モードで去年の年末を過ごしていた。
が
会社のデータセキュリティの厳格化の影響とコロナのダブルパンチで、社内ド失業状態となり、家にてUnityを使って自主ゲーム開発したり、親父をモチーフにLineのスタンプを作成したり、ゲーム実況をオネェ系でyoutubeに上げてみたりと極迷走状態を経験。
時は流れ、今年7月に入りAIシゴキ道場の入門資格を得ることが出来たので、道場の門をzoomを使いくぐってみると
そこは毎日がpandas(データ分析でよく使う謎のパンダ)を使ったkaggle(予測精度を競う脳みそが千切れそうになるコンペ)という戦場だった。
必死に考えたデータ分析アイデアがコンペのスコア上昇に全く効果がなくてHPを削られ
プログラムもほぼ未経験の後輩最強地頭可憐女子にスコアでフルボッコにされHPが1になりかけながら
なんとかAIの修行を行っていた。
そんな中
父が亡くなった。
一番kaggleが忙しい時に父がなくなるといういわゆる『忙しい時は重なる』現象を体験した。
父のDEATHについては心の準備が出来ていた為、半沢直樹の大和田常務の『お・し・ま・い・DEATH』ほどの衝撃は受けなかったが
(色々やる事が多すぎて頭が麻痺してたのかもしれない)
喪主をしながらKaggleのスコアを競うという、まさに死と隣り合わせの戦いを繰り広げたので、色んな意味で一皮むけた人間に成長出来たと感じている。
今回は父の件ではなく(父の件も色々書きたいことがあるが)AIシゴキ道場を卒業し、何か面白い事ができないかと考えた挙げ句
やっぱりアメリカ大統領選挙の予測は楽しそうだなと安易なことを思ったので、取り組んでみた。
AIシゴキ道場のサービスを使って『いぇーいやっほー、こんなに簡単に機械学習できちゃうぜー』とか書こうと思ったが
私の拙いアメリカ大統領選挙予測が外れて、ネガティブな意見をAIシゴキ道場のサービスに持たれるといけないため、自分でコードをカキカキして今回の予測は出した。
現状AIブームは終わったと言われているけど、AIブームが起こったことすら知らない人たちのほうが圧倒的に多い中で
アメリカ大統領選挙をAI(機械学習)で予測したぜーと書いても、確実にドスルーされるのが落ちで
今回のこの記事は、もし万が一アメリカ大統領選挙の予測があたってしまった場合のドヤ記事になるための証跡として書いておこうという魂胆がある。
(当たらなかったら、いや万が一当たったとしても誰にも見向きもされないかもしれないけど。。)
■エクゼクティブサマリ
(データ分析界隈でよくある偉い人向けの全体概要と結果、これが資料に無いとすげー減点される。一番大事なところ。)
●プロジェクトの目的と問題設定
AIしごき道場を無事普通の成績で卒業し、有り余るやる気の消化先が無くなってしまった為、これからのデータ分析業務のスキル向上を目指し、アメリカ大統領選挙でどちらか勝利するかを予測しようと考えた。
今回はアメリカの各州ごとに、共和党、民主党どちらが勝つかを予測する2値分類を行っている。
●予測結果
アメリカ大統領選挙の各州ごとで予測した選挙人の集計結果は
・共和党(トランプさん)選挙人獲得総数:230人
・民主党(バイデンさん)選挙人獲得総数:308人
よってバイデンさんの勝ちと予測。
激戦州のフロリダ、オハイオ、ウィスコンシンの中で
トランプさんはフロリダとウィスコンシンを落とすという予測になった。
●今後の対応
・アメリカ株式市場の動きも予測用データとして使う。
・アメリカ地図に素敵にプロットされた予測結果の表示とかしてみる。
■利用データ
(今回の予測にてどのようなデータを使ったかを書くパート。実作業時ではデータを探し、整理し、加工する最も時間が掛かる部分である。)
データセットとしては2008年、2012年、2016年を学習用データ(予測モデルを作るために使うデータ)、2020年を予測用データ(予測したい方のデータ)とした。
1984年からのデータを整理してターゲットを各州の勝利政党とした。
学習データ153行((50州+ワシントンDC) X 選挙3回)、予測用データ51行となった。
■以下各州別でデータの項目を作成
・州名
・大統領選挙データ
1個前の勝利候補者名、2個前の勝利候補者名、3個前の勝利候補者名、4個前の勝利候補者名、5個前の勝利候補者名、6個前の勝利候補者名
1個前の勝利政党名、2個前の勝利政党名、3個前の勝利政党名、4個前の勝利政党名、5個前の勝利政党名、6個前の勝利政党名
民主党大統領候補勝利数
共和党大統領候補勝利数
2008選挙人数、2012選挙人数、2016選挙人数、2020選挙人数
・産業構造データ(各州GDP及び、産業規模ランキング)
農業、林業、漁業、狩猟産業GDP、ランキング
芸術、娯楽、レクリエーション、宿泊施設、およびフードサービス業GDP,ランキング
建設業GDP,ランキング
教育サービス、医療、社会扶助産業GDP,ランキング
金融、保険業GDP,ランキング
情報産業GDP,ランキング
製造業GDP,ランキング
鉱業、採石、石油およびガスの採掘業GDP,ランキング
他のサービス業GDP、ランキング
専門的なビジネス産業GDP,ランキング
不動産および賃貸およびリース業GDP,ランキング
小売業GDP,ランキング
輸送と倉庫保管業GDP,ランキング
ユーティリティ産業GDP,ランキング
卸売業GDP,ランキング
・宗教データ
全体的な宗教ランク
確実に神を信じる割合
宗教を重要視する割合
毎日祈る割合
毎週の礼拝に参加する割合
プロテスタント割合
カトリック割合
モルモン 割合
その他のクリスチャン割合
その他割合
無宗教割合
宗教不明割合
・人種データ
白人の割合
黒人の割合
ネイティブアメリカンの割合
アジア人の割合
アイスランド人の割合
その他人種の割合
複数の人種の割合
・googleトレンドでの立候補者それぞれのwin付き検索数(選挙年ごと)
3〜10月民主党大統領候補検索量
3〜10月共和党大統領候補検索量
■link(データ取得元)
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%A1%E3%83%AA%E3%82%AB%E9%81%B8%E6%8C%99%E4%BA%BA%E5%9B%A3#:~:text=%E9%81%B8%E6%8C%99%E4%BA%BA%E3%81%AE%E6%95%B0%E3%81%AF,%E7%B7%8F%E6%95%B0%E3%81%AF538%E3%81%A8%E3%81%AA%E3%82%8B%E3%80%82
https://ja.wikipedia.org/wiki/%E8%B5%A4%E3%81%84%E5%B7%9E%E3%83%BB%E9%9D%92%E3%81%84%E5%B7%9E
https://en.wikipedia.org/wiki/Religion_in_the_United_States
https://en.wikipedia.org/wiki/List_of_U.S._states_and_territories_by_religiosity
https://worldpopulationreview.com/states/states-by-race
https://stacker.com/stories/2571/top-industries-every-state
■モデル作成
(機械学習のプログラミングスキルが遺憾なく発揮されるパート。jupyterなる魔法のnotebookを使いヒイヒイ言いながらpandasと戯れるパートでもある。
近年は便利なAIサービスが出てきており、ビジネスで機械学習を使う場合はそこまでプログラミングの知識は問われない傾向になっていているが、
kaggleなどの脳みそが千切れそうになるくらい考える頭脳戦場においては、プログラミングスキル界王拳で望みたいところである。)
上記のデータを整理して機械学習で使えるデータにしたあと、予測モデル(プログラム)を作成。
ここは、中年サラリーマンが居酒屋に入ると『とりあえずビール』よろしく機械学習モデルにおいてもと『とりあえずligthGBM』みたいなものがあるのでそれを実施。
『xgboost』など計4種類のモデルを作った。
細かい話になるが、各項目のエンコーディング方法(機械学習用に適した数値にする)の違いなどで作成したモデルの精度が変わるので
予測モデルの種類 x エンコーディング種類 x パラメータチューニング = 時間かかりすぎてアベシ! by北斗の拳
となる。それらを自動でやってくれる便利なサービスはほんとに便利なんだということを肌身で感じた事は言うまでもない。
(逆に言うといきなり最初から機械学習を便利サービスを使ってやると、機械学習てチョロいのかなと本気で錯覚してしまうので注意が必要である。)
■モデル評価
(作った予測モデルが実際に使えるものかどうかを評価するパート。様々なグラフを駆使し、この予測モデルはいかに凄いものか、優れているのかという事をアピールするパート。
少々予測精度が良くなくてもパワポの魔術師であれば如何様にもプラス評価に持っていける腕の見せ所パートでもある。)
今回は5分割交差検定を実施(データの分割ポイントを変えてテスト5回やって予測モデル作ったという意味)、最も良いモデルの評価指標としてはAUCで「0.958」が出た(1が100%正解という評価指標)。
予測モデルの作成で使用したデータの中で、何が予測モデルを作る上で重要だったのかを特徴量の重要度で見た。
重要となっていた項目は以下(上位ピックアップ)
・1個前の勝利候補者名
・1個前の勝利政党名
・プロテスタント割合
・その他のクリスチャン割合
・全体的な宗教ランク
・毎日祈る割合
・民主党大統領候補勝利数
・共和党大統領候補勝利数
・金融、保険業GDP
・芸術、娯楽、レクリエーション、宿泊施設、およびフードサービス産業GDP
・専門的なビジネス産業GDP
・アジア人の割合
・その他人種の割合
・6月民主党大統領候補検索量
●インサイト
重要となっていた項目は1つに偏らず分散した傾向があった。
逆を言えば何が重要なのかという事がわからなかった。
■予測結果
(今回は2020アメリカ大統領選挙予測の全州結果を表示)
上位4つのモデルの予測結果をアンサンブル(まぜまぜ)した。
■各州ごとの結果
州名
選挙人の数
共和党大統領候補の勝利確率
共和党勝利フラグ(勝ち1,負け0) で表示
Alabama 9 0.765848228 1
Alaska 3 0.714195154 1
Arizona 11 0.575810917 1
Arkansas 6 0.765392989 1
California 55 0.126102372 0
Colorado 9 0.199889782 0
Connecticut 7 0.128022762 0
Delaware 3 0.153187815 0
District of Columbia 3 0.129308452 0
Florida 29 0.390261471 0
Georgia 16 0.750877037 1
Hawaii 4 0.136071902 0
Idaho 4 0.749960713 1
Illinois 20 0.170894173 0
Indiana 11 0.604049193 1
Iowa 6 0.663127154 1
Kansas 6 0.758771921 1
Kentucky 8 0.765097912 1
Louisiana 8 0.764457393 1
Maine 4 0.152943872 0
Maryland 10 0.139606229 0
Massachusetts 11 0.119370127 0
Michigan 16 0.373017053 0
Minnesota 10 0.162580828 0
Mississippi 6 0.766394401 1
Missouri 10 0.730276891 1
Montana 3 0.68890008 1
Nebraska 5 0.759122129 1
Nevada 6 0.130172293 0
New Hampshire 4 0.152302831 0
New Jersey 14 0.188123725 0
New Mexico 5 0.354387756 0
New York 29 0.125537148 0
North Carolina 15 0.638718689 1
North Dakota 3 0.759105227 1
Ohio 18 0.516105074 1
Oklahoma 7 0.767127674 1
Oregon 7 0.136430121 0
Pennsylvania 20 0.394265574 0
Rhode Island 4 0.125187305 0
South Carolina 9 0.750531782 1
South Dakota 3 0.761711642 1
Tennessee 11 0.756106409 1
Texas 38 0.750929372 1
Utah 6 0.758624401 1
Vermont 3 0.166462681 0
Virginia 13 0.233263881 0
Washington 12 0.125674221 0
West Virginia 5 0.76568654 1
Wisconsin 10 0.289370328 0
Wyoming 3 0.759877233 1
(noteてtable dataの上手い表示の仕方あるんですかね。。)
■全体の結果
・共和党(トランプさん)選挙人獲得総数:230
・民主党(バイデンさん)選挙人獲得総数:308
予測精度が1位のものはトランプさんが276人でトランプさんかと思いきや
アンサンブルしたらぶっちぎりバイデンさんだった。
なので今回はバイデンさんが勝つという予測になりました。
■まとめ
(全体総括、これからのやる気に満ちた言葉、夢のある未来を語り機械学習の案件獲得や、継続的な案件化にむけてダメ押しするパート。)
渋谷の宮下公園が新しくオシャレスポットになったとTVで連日放送されていても、自分が知っている宮下公園は野性味あふれる方々が住んでいた静かな公園という記憶しか無いため、その方たちはどこに行ったんだろうかと思ってしまうと、ちょっぴりアンニュイな気持ちになりながらアメリカ大統領選挙予測を行った。
AI案件(機械学習案件)は案件の選択(良い題材)でほぼ全ての成功が決まるといっても過言ではなく、そして次に案件の数値的インパクト(どれだけ利益になるのか)が大事なのだが
今回の案件はアメリカ大統領選挙であり、それは恐ろしくチャレンジング(案件化はほぼ無理)、数値的インパクトも出していないため陽の目は見ないだろうことは確実である。
(無理くりバイデンさん勝利で高騰するかもしれないクリーンエネルギー銘柄に全力投資したらこんなに儲かりますよとか書いたら確実にひどいことになりかねないし。)
最後までお読みいただき、ありがとうございます!。
記事が面白かったという方は「♡」「フォロー」よろしくお願いします!。