Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
スティーブン・セガール出演作品の邦題に「沈黙」がつくかどうか判別する機械学習モデルを作ろうとしてみた
Search
tama-chang
September 12, 2019
Technology
0
1.4k
スティーブン・セガール出演作品の邦題に「沈黙」がつくかどうか判別する機械学習モデルを作ろうとしてみた
tama-chang
September 12, 2019
Tweet
Share
More Decks by tama-chang
See All by tama-chang
データ分析の世界で今後必要とされる役割 「Purple People」とは
cmtamai
3
2.8k
Transform〜メトリクスレイヤーとは何か? データ分析に必要な「指標」を管理する
cmtamai
0
2.1k
アナリティクスエンジニアとは(What is Analytics Engineer)
cmtamai
1
8.8k
DWH御三家の各特徴と選び方〜SnowflakeとBigQueryとRedshiftと〜
cmtamai
0
9.6k
禁忌解放~TableauとLookerを連携して究極のBI環境を召喚する
cmtamai
0
3.3k
Lookerはじめの一歩
cmtamai
0
2.2k
Snowflakeはじめの一歩
cmtamai
2
2.5k
スティーブン・セガール出演作品の邦題に「沈黙」がつくかどうか判別する機械学習モデルを作ろうとしてみた
cmtamai
0
880
osaka_tamai.pdf
cmtamai
0
1.8k
Other Decks in Technology
See All in Technology
DUSt3R, MASt3R, MASt3R-SfM にみる3D基盤モデル
spatial_ai_network
2
180
あの日俺達が夢見たサーバレスアーキテクチャ/the-serverless-architecture-we-dreamed-of
tomoki10
0
460
ゼロから創る横断SREチーム 挑戦と進化の軌跡
rvirus0817
2
270
権威ドキュメントで振り返る2024 #年忘れセキュリティ2024
hirotomotaguchi
2
750
kargoの魅力について伝える
magisystem0408
0
210
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
130
生成AIのガバナンスの全体像と現実解
fnifni
1
190
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
200
社内イベント管理システムを1週間でAKSからACAに移行した話し
shingo_kawahara
0
190
.NET 9 のパフォーマンス改善
nenonaninu
0
1k
Turing × atmaCup #18 - 1st Place Solution
hakubishin3
0
490
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
5
200
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
For a Future-Friendly Web
brad_frost
175
9.4k
How STYLIGHT went responsive
nonsquared
95
5.2k
Code Review Best Practice
trishagee
65
17k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Side Projects
sachag
452
42k
Writing Fast Ruby
sferik
628
61k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
Transcript
スティーブン・セガール出演作品の邦題に 「沈黙」がつくかどうか判別する機械学習モ デルを作ろうとしてみた データアナリティクス事業本部 玉井励
スライドは後で入手することが出来ますので 発表中の内容をメモする必要はありません。 写真撮影をする場合は フラッシュ・シャッター音が出ないようにご配慮ください
3 自己紹介 玉井 励(タマイ レイ) • データアナリティクス事業本部 プロダクト営業部 • 営業ではありません
• サポートエンジニア • 群れない媚びない頑張らない
4 空前の機械学習ブーム
5 空前の機械学習ブーム
6 機械学習をやるために必要そうなもの
7 機械学習をやるために必要そうなもの
8 勉強できそうな本もたくさん
9 技術的なことはわかってきた
10 でも、これらの技術を実際に使ってみた話は あんまり聞いたことがない?
11 今日は機械学習を実際にやってみた話をします
12 本日お話すること
13 本日お話すること • 機械学習を使ったデータ分析プロジェクトをやって みたという経験談 • Alteryxというツールを使いました • スティーブン・セガールに関する簡単な説明
14 Alteryx?
15 Alteryx Designer
16 本日お話しないこと
17 本日お話しないこと • Alteryxの詳しい説明 • 機械学習に関する高度な説明 • データ分析におけるベストプラクティス • AWS等のインフラ
• →本作品はローカルPCの中が舞台です • スティーブン・セガールに関する詳しい説明
18 「やってみた」という物語~沈黙の分析
19 仕事ではじめる機械学習 めちゃくちゃ 参考にしました
20 書評も書きました https://dev.classmethod.jp/book-review/donated-book-machine- learning-to-begin-with-work/
21 機械学習でデータ分析する時の流れ
22 「仕事ではじめる機械学習」より 1. 問題を定式化する 2. 機械学習以外の方法を考える 3. アルゴリズムを選定する 4. 特徴量、教師データとログの設計をする
5. 前処理をする 6. 学習・パラメータチューニング 7. 評価
23 「仕事ではじめる機械学習」より 1. 問題を定式化する 2. 機械学習以外の方法を考える 3. アルゴリズムを選定する 4. 特徴量、教師データとログの設計をする
5. 前処理をする 6. 学習・パラメータチューニング 7. 評価
24 ビジネスだったら • ECサイトの売上をあげたい • 工場の消費電力のコストを下げたい
25 ビジネスだったら • ECサイトの売上をあげたい • ECサイトの売上を上げるために、ユーザー毎におすすめ商 品を提示する • 工場の消費電力のコストを下げたい •
工場の消費電力を最適化するために、消費電力を予測する
26 問題を定式化する 今回は?
スティーブン・セガール出演作品の邦題に 「沈黙」がつくかどうか判別する機械学習モ デルを作ろうとしてみた (再掲)
28 セガール映画の邦題 主演作の邦題には「沈黙の~」で始まるものが多いため、 まとめて『沈黙シリーズ』と呼ばれることが多いが、実 際のシリーズ作は『沈黙の戦艦』とその続編『暴走特 急』(シリーズ原題『Under Siege』)のみである。他 は日本国内での配給権を得た会社が、配給会社にかかわ らず、原題とは無関係に「沈黙の~」としているにすぎ ない。
https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%86%E3%82% A3%E3%83%BC%E3%83%B4%E3%83%B3%E3%83%BB%E3%82% BB%E3%82%AC%E3%83%BC%E3%83%AB
29 問題を定式化する • スティーブン・セガールが出演する映画で、「沈 黙」がつくのは、どういう作品になるのか知りたい • スティーブン・セガールが出演する映画で、まだ邦 題がついていない作品に、もし邦題がつくとしたら、 「沈黙」がつくかどうか知りたい
30 問題を定式化する セガール映画のデータを元に、 邦題に「沈黙」がつくかどうか予測する
31 こういう人もいるかもしれない スティーブン・セガールって?
32 スティーブン・セガールについて スティーヴン・フレデリック・セガール(Steven Frederick Seagal / 1952年4月10日 - )は、アメリ カ合衆国の俳優で、テキサス州ハズペス郡保安局の執行
官、武道家。合気道七段。 https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%86%E3%82% A3%E3%83%BC%E3%83%B4%E3%83%B3%E3%83%BB%E3%82% BB%E3%82%AC%E3%83%BC%E3%83%AB
33 スティーブン・セガールについて 17歳の時から10年以上大阪府に滞在していたため、日 本語が堪能。千葉真一と親交があり、千葉がハリウッド に拠点を移してからは、セガールが流暢な大阪弁で「千 葉先生、居てはりまっか?」などと、頻繁に千葉へ連絡 している。淀川長治とも日本語で対談を行い、淀川の 「日本語がお上手ですね」に対してセガールは「恐れ入 ります」と応えた。 https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%86%E3%82%
A3%E3%83%BC%E3%83%B4%E3%83%B3%E3%83%BB%E3%82% BB%E3%82%AC%E3%83%BC%E3%83%AB
34 スティーブン・セガールについて 遅刻と早退の常習犯で、『沈黙の脱獄』と『沈黙の傭 兵』を製作したキル・マスター・プロダクションと ニュー・イメージから、映画製作を遅らせたとして訴え られた。その訴訟内容の中には脚本の勝手な書き換えや、 取り巻き連中による撮影の妨害という内容まである。 https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%86%E3%82% A3%E3%83%BC%E3%83%B4%E3%83%B3%E3%83%BB%E3%82% BB%E3%82%AC%E3%83%BC%E3%83%AB
35 スティーブン・セガールの受賞歴 ゴールデンラズベリー賞 • 最低監督賞:受賞『沈黙の要塞』、最低作品賞:ノミネート『沈黙の要塞』、 最低主演男優賞:ノミネート『沈黙の要塞』(1994年) • 最低助演男優賞:ノミネート『エグゼクティブ・デシジョン』(1996年) • 最低主演男優賞:ノミネート『沈黙の断崖』、最低主題歌賞:ノミネート『沈
黙の断崖』、最低作品賞:ノミネート『沈黙の断崖』、最低スクリーン・カッ プル賞:ノミネート『沈黙の断崖』(1997年) • 最低主演男優賞:『奪還 DAKKAN -アルカトラズ-』(2002年) https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%86%E3%82%A3% E3%83%BC%E3%83%B4%E3%83%B3%E3%83%BB%E3%82%BB%E3 %82%AC%E3%83%BC%E3%83%AB
36 「仕事ではじめる機械学習」より 1. 問題を定式化する 2. 機械学習以外の方法を考える 3. アルゴリズムを選定する 4. 特徴量、教師データとログの設計をする
5. 前処理をする 6. 学習・パラメータチューニング 7. 評価
37 機械学習以外の方法を考える 機械学習(をビジネスに組み込むの)は難しい • (予測に対して)必ず一定の間違いが発生する • モデルをずっとメンテナンスし続ける必要がある • 機械学習を用いたシステムは技術的負債が蓄積しやすい •
そういう論文があります • https://ai.google/research/pubs/pub43146
38 機械学習以外の方法を考える 目的は「問題を解決すること」
39 機械学習以外の方法を考える • 機械学習自体が目的ではない • 例えばBIツール等でデータを分析してみて、それで問題解決へのア クションが分かればそれに越したことはない
40 機械学習以外の方法で予測してみた例 2010年代から全部「沈 黙」がついている →今後の作品も全部 「沈黙」がつくので は?
41 「仕事ではじめる機械学習」より 1. 問題を定式化する 2. 機械学習以外の方法を考える 3. アルゴリズムを選定する 4. 特徴量、教師データとログの設計をする
5. 前処理をする 6. 学習・パラメータチューニング 7. 評価
42 機械学習の種類 • 分類 • 回帰 • その他
43 分類 • このメールはスパムかどう か? • この画像は犬か猫か? • 教師あり学習 •
入力データとそれに対する正 解カテゴリ(クラス)をもと に学習し、未知のデータに対 してカテゴリを予測する
44 回帰 • 来年の売上を予測したい • うちのWebサイトのアクセス 数はどうなる? • 教師あり学習 •
入力データとそれに対する正 解の数値をもとに学習し、未 知のデータに対して数値(連 続値)を予測する
45 強化学習
46 その他 • クラスタリング • 次元削減 • 推薦 • 頻出パターンマイニング
• 異常検知(outlier detection) • …など
47 アルゴリズムを選定する 今回は?
48 アルゴリズムを選定する 「沈黙」がつくかどうか
49 アルゴリズムを選定する 分類です
50 分類のアルゴリズム • ロジスティック回帰 • サポートベクターマシン • ニューラルネットワーク • 決定木
• ランダムフォレスト • …などなど
51 分類のアルゴリズム • ロジスティック回帰 • サポートベクターマシン • ニューラルネットワーク • 決定木
• ランダムフォレスト • …などなど
52 アルゴリズムを選定する • 本来は複数のアルゴリズムをやってみて、一番結果 が良いものを選択する • 今回は話をシンプルにするため、とりあえずロジス ティック回帰だけにしてみた • 勉強不足で複数のアルゴリズムを扱う能力がない
53 ロジスティック回帰とは • シンプルなアルゴリズム • 予測性能はそこそこ • 学習速度が速い • (予測時に)確率が出る
• Google Mapの駐車場の空き 具合推定に使われている • https://ai.googleblog.com/2017/02/u sing-machine-learning-to- predict.html
54 「仕事ではじめる機械学習」より 1. 問題を定式化する 2. 機械学習以外の方法を考える 3. アルゴリズムを選定する 4. 特徴量、教師データとログの設計をする
5. 前処理をする 6. 学習・パラメータチューニング 7. 評価
55 特徴量、教師データとログの設計をする どんなデータをどこからとってきて どういう形にするべきか
56 ざっくり考えてみる… • スティーブン・セガールが出演した映画のデータ • 出演者 • 公開年 • ジャンル
• 上映時間 • …など • 邦題も必要
57 データ取得先の候補 TMDb API OMDb API
58 The Movie Database API (TMDb API) • APIでデータをとってこれ る
• 無償(重要) • 特徴量として使えそうな データが少なめ • https://www.themovied b.org/
59 The Open Movie Database API(OMDb API) • APIでデータをとってこれ る
• 無償(重要) • 特徴量として使えそうな データが多め • http://www.omdbapi.co m/
60 OMDb APIに決定しそうな勢いだったが… OMDb APIは必ず作品名か IMDbのIDを投げないといけない
61 どういうことか 理想はリクスエストパラメータに「Seagal」とか投げ て、セガール映画のデータを一気に取りたかった • OMDb APIはそれができない(タイトルかIMDb IDがい る) •
セガール映画のIDリストを別途用意して、それをもとに OMDb APIに投げる必要あり
62 セガール映画のIMDb IDを一気に取得したい TMDb APIで可能
63 データ取得先の候補 2つのAPIを両方使うことに決定
64 次の問題 邦題はどうする?
65 Wikipediaをスクレイピングせざるをえない
66 APIのデータとWikipedia(邦題)データ 「原題」で結合する
67 まとめ • TMDbのAPIからスティーブン・セガールが出演した 映画のIMDbのIDを取得する • OMDbのAPIからスティーブン・セガールが出演した 映画のデータを取得する • スティーブン・セガールのWikipediaから原題と邦題
のデータを取得する • 上記2つのデータを「原題」で結合する
68 「仕事ではじめる機械学習」より 1. 問題を定式化する 2. 機械学習以外の方法を考える 3. アルゴリズムを選定する 4. 特徴量、教師データとログの設計をする
5. 前処理をする 6. 学習・パラメータチューニング 7. 評価
69 前処理をする • TMDbのAPIからスティーブン・セガールが出演した 映画のIMDbのIDを取得する • OMDbのAPIからスティーブン・セガールが出演した 映画のデータを取得する • スティーブン・セガールのWikipediaから原題と邦題
のデータを取得する • 上記2つのデータを「原題」で結合する
70 /discover/movie • /discover/movie • ここに欲しい映画に関す るワードをリクエストに 投げれば、IMDb IDがレ スポンスとして取得でき
る
71 リクスエストパラメータ セガールの名前ではなくIDが必要
72 /search/person • /search/person • queryに「seagal」と投げ てセガールのIDを取得す る
73 ついにAlteryxが登場
74 1.セガールID取得ワークフロー
75 1.セガールID取得ワークフロー
76 1.セガールID取得ワークフロー
77 1.セガールID取得ワークフロー
78 2.セガール映画データ取得ワークフロー
79 2.セガール映画データ取得ワークフロー セガールIDを使用して セガール映画のIMDb IDを取得
80 2.セガール映画データ取得ワークフロー
81 2.セガール映画データ取得ワークフロー セガール映画のIMDb IDを使用して セガール映画のデータを取得
82 2.セガール映画データ取得ワークフロー
83 2.セガール映画データ取得ワークフロー
84 2.セガール映画データ取得ワークフロー
85 前処理をする • TMDbのAPIからスティーブン・セガールが出演した 映画のIMDbのIDを取得する • OMDbのAPIからスティーブン・セガールが出演した 映画のデータを取得する • スティーブン・セガールのWikipediaから原題と邦題
のデータを取得する • 上記2つのデータを「原題」で結合する
86 3.セガール映画の邦題取得ワークフロー
87 Dashblock Webサイトの任意の値を API化して取得できるア プリケーション https://dashblock.com/
88 3.セガール映画の邦題取得ワークフロー DashblockでWikipediaのデータを API化し、そこからGET
89 3.セガール映画の邦題取得ワークフロー 取得したJSONを整形
90 3.セガール映画の邦題取得ワークフロー
91 前処理をする • TMDbのAPIからスティーブン・セガールが出演した 映画のIMDbのIDを取得する • OMDbのAPIからスティーブン・セガールが出演した 映画のデータを取得する • スティーブン・セガールのWikipediaから原題と邦題
のデータを取得する • 上記2つのデータを「原題」で結合する
92 3.セガール映画データと邦題の結合ワークフロー
93 3.セガール映画データと邦題の結合ワークフロー 原題で結合
94 3.セガール映画データと邦題の結合ワークフロー 邦題に「沈黙」を含んでたらTrue
95 3.セガール映画データと邦題の結合ワークフロー 想定以上に結合漏れする映画が発生 (数十件)
96 どういうことか API側とWikipediaで大文字と小文字の表記が異なっ ていた • 「Above the Law」と「Above The Law」など
• 双方とも全て大文字に変換してから結合することで対策
97 3.セガール映画データと邦題の結合ワークフロー それでも結合漏れする映画が発生
98 1つづつ確認していく そもそも日本未配給だった(要するに邦題がない) • Get Bruce! • The Unbeatable Bruce
Lee • How to Blow Up a Helicopter (Ayako's Story) • Sheep Impact • The Joe Show • 80’s Blockbusters: When Hollywood Played Tough
99 本来結合するべきはずの映画たち Urban Justice • 原題は「Renegade Justice」(Wikipediaはこっち) • しかしアメリカ版DVDだけ「Urban Justice」(API側は
こっち) • ちなみに邦題は「沈黙の報復」
100 本来結合するべきはずの映画たち Cartels • 英語版Wikipediaの説明文 • Cartels also known as
Killing Salazar[1] is a 2017 action film starring Steven Seagal and directed by Keoni Waxman. • セガールの日本語Wikipediaには「Killing Salazar」とい う映画が記載。99%とこの作品と判断。 • ちなみに邦題は「キリング・サラザール 沈黙の作戦」
101 この2作品はどうする? 面倒なので出力したcsvを直接編集した
102 3.セガール映画データと邦題の結合ワークフロー
103 これでデータは揃った…? まだ前処理は終わらない
104 機械学習の前処理として避けられない • ダミー変数(化) • 欠損値の補完 • 正規化
105 ダミー変数とは 題名 脚本 Above the Law Andrew Davis (story)
Hard to Kill Steven McKay Marked for Death Michael Grais Out for Justice R. Lance Hill
106 ダミー変数とは 題名 脚本_Andrew Davis (story) 脚本_Steven McKay … Above
the Law 1 0 … Hard to Kill 0 1 … Marked for Death 0 0 … Out for Justice 0 0 …
107 欠損値とは • 一言でいうとNULLのこと • NULLがあると学習が回らない • 補完する必要がある • 手法はいろいろ…
• 平均を代入する • 中央値を代入する • 最頻出値を代入する • 任意の固定値を代入する • …などなど
108 正規化とは データ等々を一定のルール(規則)に基づいて変形し、 利用しやすくすること。 • by Wikipedia • 例えば身長と体重は純粋に数字だけで比較できない •
同じ粒度に変換して、計算や比較を行いやすいようにする
109 4.欠損値補完、正規化、ダミー変数化するWF
110 4.正規化とダミー変数化するワークフロー
111 「仕事ではじめる機械学習」より 1. 問題を定式化する 2. 機械学習以外の方法を考える 3. アルゴリズムを選定する 4. 特徴量、教師データとログの設計をする
5. 前処理をする 6. 学習・パラメータチューニング 7. 評価
112 沈黙予測モデル作成ワークフロー
113 沈黙予測モデル作成ワークフロー サンプルデータだけ抽出 ※詳細は後述
114 沈黙予測モデル作成ワークフロー
115 ロジスティック回帰ツール 目的変数 (予測したい値) 説明変数 (予測に使用する変数)
116 ロジスティック回帰ツール 目的変数 (沈黙フラグ) 説明変数 (出演俳優とかジャンル とか…)
117 ロジスティック回帰ツール よくわかんないので全カラム指定してみた
118 ロジスティック回帰ツール
119 ロジスティック回帰ツール エラー
120 ロジスティック回帰ツール データ数に対して説明変数が多すぎると うまく学習できないらしい
121 ロジスティック回帰ツール データ数に対して説明変数が多すぎると うまく学習できないらしい
122 そもそもデータ数ってどれくらいいるのか? https://scikit-learn.org/stable/tutorial/machine_learning_map/index.html
123 そもそもデータ数ってどれくらいいるのか?
124 そもそもデータ数ってどれくらいいるのか?
125 そもそもデータ数ってどれくらいいるのか? 54件は少なすぎでしょ…
126
127 沈黙の復活 さすがにここでは終われないので 無理やりにでも続けます
128 ロジスティック回帰ツール データ数に対して説明変数が多すぎると うまく学習できないらしい
129 説明変数を極端に減らしてみると成功
130 ロジスティック回帰ツール どの説明変数をどれだけ指定するのが ベストなのか?
131 p値が低すぎる説明変数を省く • データが偏りすぎている変数は省く • 1が一つしかないダミー変数とか • p値が高すぎる説明変数を省く • 手法がいくつかあります
132 p値が低すぎる説明変数を省く • データが偏りすぎている変数は省く • 1が一つしかないダミー変数とか • p値が低すぎる説明変数を省く • 手法がいくつかあります
133 p値が低すぎる説明変数を省く AIC(赤池情報量基準)を使用する • 統計学者の赤池弘次氏が考案 • そのモデルのAICが小さいほど、そのモデルの精度は良い と評価できる • 説明変数を選択する基準によく用いられる
134 AICはいいんだけど… 「p値が一番大きい変数を1つずつ外してはAIC を確認…外してはAICを確認…」 面倒そう…
135 AICはいいんだけど… Alteryxは自動でできる
136 ステップワイズツールを投入する
137 ステップワイズツールを投入する 基準はAIC、p値が大きい ものから減らしていく方 法を指定
138 ついにロジスティック回帰成功か? これでいけるか?
139 ついにロジスティック回帰成功か? エラー
140 ついにロジスティック回帰成功か? いくらステップワイズツール入れても やっぱり説明変数多すぎるらしい
141 どっちの対策もやることに • データが偏りすぎている変数は省く • 1が一つしかないダミー変数とか • p値が低すぎる説明変数を省く • 手法がいくつかあります
142 データが偏りすぎている変数は省く • 俳優系のダミー変数はほぼ全部偏っていた • 大体、一度しか出演してない俳優 • (当然ながら)逆にセガールは全部出ている • 公開国のダミー変数もほぼ全部偏っていた
• 逆にアメリカはほとんど全部公開国 • 脚本家とかもほとんど全部偏っていた • …など
143 説明変数の選択 偏っているか微妙なデータはどうする?
144 説明変数の選択 センス
145 データに対する知見は絶対必要 • もちろんグラフ等で偏りをしっかり確認するのは大事 • しかし、データに対する知見(センス)も必要 • 例:監督がキオニ・ワックスマンかどうかは必要と思う • キオニ・ワックスマンはいつもの何とも言えないセガール映画
を量産している監督で有名 • キオニ・ワックスマンが監督の時は「沈黙の~」になるので は??という仮説も浮かんだり。
146 そして… ひとまずロジスティック回帰 動きました
147 最終的に選択した説明変数
148 ステップワイズで絞込んだ方
149 学習結果が明らかにおかしい場合もある 学習結果が明らかにおかしい場合 • 例:結果が良すぎる場合 • どれも0に極めて近い(全部が有意になっている)
150 学習結果が明らかにおかしい場合もある 過学習(または未学習)の可能性
151 過学習とは • 学習したデータはバッチリ予測できる • 未知のデータはてんでダメ • テスト勉強で問題を丸暗記しただけ、な状態 • →テスト以外の問題問題が出たら解けない
152 交差検証(クロスバリデーション) 全データ 開発データ テストデータ 訓練データ 検証データ ※交差検証にも 色々な手法があります
153 交差検証(クロスバリデーション)
154 「仕事ではじめる機械学習」より 1. 問題を定式化する 2. 機械学習以外の方法を考える 3. アルゴリズムを選定する 4. 特徴量、教師データとログの設計をする
5. 前処理をする 6. 学習・パラメータチューニング 7. 評価
155 モデルの評価 そのモデルの予測精度はいいのか? それとも悪いのか?
156 モデルの評価指標 • 正解率 • 適合率 • 再現率 • F値
157 正解率(Accuracy) 正解した数 / 予測した全データ数 • シンプル • これでいい?
158 正解率(Accuracy) 正解率で精度を評価するのはダメ
159 正解率(Accuracy) すべて「沈黙がつく」と予測するモデル • データの偏りによってはそれなりの精度になる • そのモデルに意味はあるか?
160 ではどうすれば? 適合率と再現率を見る
161 適合率と再現率 適合率(Precision) • モデルがTrueと予測したうち、実際に正解していた割合 • 「沈黙がついている」と予測したうち、実際に正解してい た割合 再現率(Recall) •
全データに含まれるTrueのうち、モデルが正解した割合 • 実際に「沈黙」がついている映画のうち、モデルが実際に 正解した割合
162 適合率と再現率 適合率と再現率はトレード・オフの関係 正確性 見逃し 適合率 高 多 再現率 低
少
163 適合率、再現率、F値 どの指標を優先するかは、分析の要件による • 今回の「沈黙の予測」は予測するからには外したくないの で、適合率優先でいきます。
164 F値 • 適合率と再現率のバランスを表した指標 • 1に近いほどよい
165 どうやって出すのか Alteryxはこれらの指標も出してくれます
166 モデル比較ツールを投入する
167 モデル比較ツールを投入する
168 モデル比較ツールを投入する
169 混同行列(Confusion Matrix) 実際の結果が負 (沈黙なし) 実際の結果が真 (沈黙なし) 予測した結果が 負(沈黙なし) 予測した結果が
真(沈黙あり)
170 混同行列(Confusion Matrix) 実際の結果が負 (沈黙なし) 実際の結果が真 (沈黙なし) 予測した結果が 負(沈黙なし) 真陰性
偽陰性 予測した結果が 真(沈黙あり) 偽陽性 真陽性
171 混同行列(Confusion Matrix) 実際の結果が負 (沈黙なし) 実際の結果が真 (沈黙なし) 予測した結果が 負(沈黙なし) 4
1 予測した結果が 真(沈黙あり) 4 7
172 混同行列(Confusion Matrix) 実際の結果が負 (沈黙なし) 実際の結果が真 (沈黙なし) 予測した結果が 負(沈黙なし) 4
1 予測した結果が 真(沈黙あり) 4 7 7 / 4+7 = 適合率
173 混同行列(Confusion Matrix) 実際の結果が負 (沈黙なし) 実際の結果が真 (沈黙なし) 予測した結果が 負(沈黙なし) 4
1 予測した結果が 真(沈黙あり) 4 7 7 /1+7 = 再現率
174 再掲
175 数値の名前を説明に合わせます 正解率 F値
176 数値の名前を説明に合わせます 再現率 ※なぜか適合率はない…
177 今回の結果 適合率 再現率 F値 ロジスティック 回帰 75% 75% 0.75
ステップワイズ 63% 87% 0.61
178 今回の結果 ロジスティック回帰(で作成したモデル)を 採用します
179 他にも評価するための手法は色々あります • リフトチャート • 適合率再現率曲線 • ROC曲線 • …など
180 圧倒的沈黙…ッッ… ついに「沈黙」を予測する時がきた
181 沈黙のワークフロー
182 沈黙のワークフロー 予測したいデータの形式も、 学習時と同一にしておく (ダミー変数化や正規化など)
183 沈黙の予測結果
184 1とかありえへんから… 出力値がおかしい
185 しかし… もう時間がないのでこのまま行きます
186 沈黙の予測結果 Sheep Impact に邦題をつけるとしたら「沈黙」がつく!
187 Sheep Impactを詳しく • 2010年に放映されたオーストラリアの短編映画(4分) • カールトン&ユナイテッドブルワリーズの広告として制作 された(ほとんどCM) • セガールとその友人がバーベキューに肉を持ち込んだら起
訴されて色々揉める話? • YouTubeで普通に見れる • https://youtu.be/LgXXC7OTD3g
188 私が命名します 「沈黙の羊たち」
189 セガール vs レクター博士? どこかで聞いたことがあるような…?
190 まとめに入ります
191 今回のプロジェクトの問題点 データ少なすぎ • そもそも問題設定からして無理があった • 一人の俳優が出演した作品数なんて多くても2桁どまり • モデルの精度にも影響が出た アルゴリズムわかってなさすぎ
• ハイパーパラメータの調整とか一切やってない ロジスティック回帰一点突破 • 他のアルゴリズムも試してみるべき
192 総まとめ 問題設定はしっかり 機械学習以外の方法を真剣に考える データに対する知識のある人が必要 • そのデータの内容をわかっていないと分析は不可 アルゴリズムの使い方がわかる人が必要 • 今回のようになあなあでやってもモデルは作れてしまう
前処理はやっぱり時間がかかる
193
194 「沈黙の分析」 続編 制作決定
195 決定木ッッ… ランダムフォレストッッ… ニューラルネットワークッッ…
196 「沈黙の分析2」 10月11日(金) 大阪府 梅田スカイビル タワーウエスト 22F
197