Slide 1

Slide 1 text

スティーブン・セガール出演作品の邦題に 「沈黙」がつくかどうか判別する機械学習モ デルを作ろうとしてみた データアナリティクス事業本部 玉井励

Slide 2

Slide 2 text

スライドは後で入手することが出来ますので 発表中の内容をメモする必要はありません。 写真撮影をする場合は フラッシュ・シャッター音が出ないようにご配慮ください

Slide 3

Slide 3 text

3 ハッシュタグ イベント全体について #cmdevio この部屋のセッションについて #cmdevio4

Slide 4

Slide 4 text

4 自己紹介 玉井 励(タマイ レイ) • データアナリティクス事業本部 • 大阪オフィス勤務 • 今日は出張で東京に来ました • 3日後にはアメリカ出張 人生のモットー • 群れない 媚びない 頑張らない

Slide 5

Slide 5 text

5 空前の機械学習ブーム

Slide 6

Slide 6 text

6 空前の機械学習ブーム

Slide 7

Slide 7 text

7 機械学習をやるために必要そうなもの

Slide 8

Slide 8 text

8 機械学習をやるために必要そうなもの

Slide 9

Slide 9 text

9 勉強できそうな本もたくさん

Slide 10

Slide 10 text

10 技術的なことはわかってきた

Slide 11

Slide 11 text

11 でも、これらの技術を実際に使ってみた話は あんまり聞いたことがない?

Slide 12

Slide 12 text

12 今日は機械学習を実際にやってみた話をします

Slide 13

Slide 13 text

13 本日お話すること

Slide 14

Slide 14 text

14 本日お話すること • 機械学習を使ったデータ分析プロジェクトをやって みたという経験談 • Alteryx • Amazon Rekognition • スティーブン・セガールに関する簡単な説明

Slide 15

Slide 15 text

15 Alteryx?

Slide 16

Slide 16 text

16 Alteryx Designer

Slide 17

Slide 17 text

17 本日お話しないこと

Slide 18

Slide 18 text

18 本日お話しないこと • Alteryxの詳しい説明 • 機械学習に関する高度な説明 • データ分析におけるベストプラクティス • インフラについて • スティーブン・セガールに関する詳しい説明

Slide 19

Slide 19 text

19 「やってみた」という物語~沈黙の分析

Slide 20

Slide 20 text

20 仕事ではじめる機械学習 めちゃくちゃ 参考にしました

Slide 21

Slide 21 text

21 書評も書きました https://dev.classmethod.jp/book-review/donated-book-machine- learning-to-begin-with-work/

Slide 22

Slide 22 text

22 機械学習でデータ分析する時の流れ

Slide 23

Slide 23 text

23 「仕事ではじめる機械学習」より 1. 問題を定式化する 2. 機械学習以外の方法を考える 3. アルゴリズムを選定する 4. 特徴量、教師データとログの設計をする 5. 前処理をする 6. 学習・パラメータチューニング 7. 評価

Slide 24

Slide 24 text

24 「仕事ではじめる機械学習」より 1. 問題を定式化する 2. 機械学習以外の方法を考える 3. アルゴリズムを選定する 4. 特徴量、教師データとログの設計をする 5. 前処理をする 6. 学習・パラメータチューニング 7. 評価

Slide 25

Slide 25 text

25 ビジネスだったら • ECサイトの売上をあげたい • 工場の消費電力のコストを下げたい

Slide 26

Slide 26 text

26 ビジネスだったら • ECサイトの売上をあげたい • ECサイトの売上を上げるために、ユーザー毎におすすめ商 品を提示する • 工場の消費電力のコストを下げたい • 工場の消費電力を最適化するために、消費電力を予測する

Slide 27

Slide 27 text

27 問題を定式化する 今回は?

Slide 28

Slide 28 text

スティーブン・セガール出演作品の邦題に 「沈黙」がつくかどうか判別する機械学習モ デルを作ろうとしてみた (再掲)

Slide 29

Slide 29 text

29 セガール映画の邦題 主演作の邦題には「沈黙の~」で始まるものが多いため、 まとめて『沈黙シリーズ』と呼ばれることが多いが、実 際のシリーズ作は『沈黙の戦艦』とその続編『暴走特 急』(シリーズ原題『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

Slide 30

Slide 30 text

30 問題を定式化する • スティーブン・セガールが出演する映画で、「沈 黙」がつくのは、どういう作品になるのか知りたい • スティーブン・セガールが出演する映画で、まだ邦 題がついていない作品に、もし邦題がつくとしたら、 「沈黙」がつくかどうか知りたい

Slide 31

Slide 31 text

31 問題を定式化する セガール映画のデータを元に、 邦題に「沈黙」がつくかどうか予測する

Slide 32

Slide 32 text

32 こういう人もいるかもしれない スティーブン・セガールって?

Slide 33

Slide 33 text

33 スティーブン・セガールについて スティーヴン・フレデリック・セガール(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

Slide 34

Slide 34 text

34 スティーブン・セガールについて 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

Slide 35

Slide 35 text

35 スティーブン・セガールについて 遅刻と早退の常習犯で、『沈黙の脱獄』と『沈黙の傭 兵』を製作したキル・マスター・プロダクションと ニュー・イメージから、映画製作を遅らせたとして訴え られた。その訴訟内容の中には脚本の勝手な書き換えや、 取り巻き連中による撮影の妨害という内容まである。 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

Slide 36

Slide 36 text

36 スティーブン・セガールの受賞歴 ゴールデンラズベリー賞 • 最低監督賞:受賞『沈黙の要塞』、最低作品賞:ノミネート『沈黙の要塞』、 最低主演男優賞:ノミネート『沈黙の要塞』(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

Slide 37

Slide 37 text

37 「仕事ではじめる機械学習」より 1. 問題を定式化する 2. 機械学習以外の方法を考える 3. アルゴリズムを選定する 4. 特徴量、教師データとログの設計をする 5. 前処理をする 6. 学習・パラメータチューニング 7. 評価

Slide 38

Slide 38 text

38 機械学習以外の方法を考える 機械学習(をビジネスに組み込むの)は難しい • (予測に対して)必ず一定の間違いが発生する • モデルをずっとメンテナンスし続ける必要がある • 機械学習を用いたシステムは技術的負債が蓄積しやすい • そういう論文があります • https://ai.google/research/pubs/pub43146

Slide 39

Slide 39 text

39 機械学習以外の方法を考える 目的は「問題を解決すること」

Slide 40

Slide 40 text

40 機械学習以外の方法を考える • 機械学習自体が目的ではない • 例えばBIツール等でデータを分析してみて、それで問題解決へのア クションが分かればそれに越したことはない

Slide 41

Slide 41 text

41 機械学習以外の方法で予測してみた例 2010年代から全部「沈 黙」がついている →今後の作品も全部 「沈黙」がつくので は?

Slide 42

Slide 42 text

42 「仕事ではじめる機械学習」より 1. 問題を定式化する 2. 機械学習以外の方法を考える 3. アルゴリズムを選定する 4. 特徴量、教師データとログの設計をする 5. 前処理をする 6. 学習・パラメータチューニング 7. 評価

Slide 43

Slide 43 text

43 機械学習の種類 • 分類 • 回帰 • その他

Slide 44

Slide 44 text

44 分類 • このメールはスパムかどう か? • この画像は犬か猫か? • 教師あり学習 • 入力データとそれに対する正 解カテゴリ(クラス)をもと に学習し、未知のデータに対 してカテゴリを予測する

Slide 45

Slide 45 text

45 回帰 • 来年の売上を予測したい • うちのWebサイトのアクセス 数はどうなる? • 教師あり学習 • 入力データとそれに対する正 解の数値をもとに学習し、未 知のデータに対して数値(連 続値)を予測する

Slide 46

Slide 46 text

46 強化学習

Slide 47

Slide 47 text

47 その他 • クラスタリング • 次元削減 • 推薦 • 頻出パターンマイニング • 異常検知(outlier detection) • …など

Slide 48

Slide 48 text

48 アルゴリズムを選定する 今回は?

Slide 49

Slide 49 text

49 アルゴリズムを選定する 「沈黙」がつくかどうか

Slide 50

Slide 50 text

50 アルゴリズムを選定する 分類です

Slide 51

Slide 51 text

51 分類のアルゴリズム • ロジスティック回帰 • サポートベクターマシン • ニューラルネットワーク • 決定木 • ランダムフォレスト • …などなど

Slide 52

Slide 52 text

52 アルゴリズムを選定する 複数のアルゴリズムを併用して 一番結果が良いものを選択する

Slide 53

Slide 53 text

53 今回はこの4つを試したいと思います • ロジスティック回帰 • ニューラルネットワーク • 決定木 • ランダムフォレスト

Slide 54

Slide 54 text

54 ロジスティック回帰とは • シンプルなアルゴリズム • 予測性能はそこそこ • 学習速度が速い • (予測時に)確率が出る • Google Mapの駐車場の空き 具合推定に使われている • https://ai.googleblog.com/2017/02/u sing-machine-learning-to- predict.html

Slide 55

Slide 55 text

55 ニューラルネットワークとは • 脳の神経回路の情報伝達の方 法から着想を得たので、この 名前(らしい) • 学習速度は遅め • GPUを活用することで改善 • パラメータの数が多い • チューニングが難しい • 過学習しやすい • これがめっちゃ進化したのが ディープラーニング

Slide 56

Slide 56 text

56 決定木とは • ツリー型のアルゴリズム • 人間がみて理解しやすいモデ ル • IF文が連発してる感じ • 過学習しやすい • 「枝刈り」という手法で対策

Slide 57

Slide 57 text

57 ランダムフォレストとは • 決定木をの応用版 • 決定木を複数並行で行い、結 果を多数決で統合する • 決定木より予測性能は高い (といわれている) • 過学習しやすい • 「枝刈り」がない(しない)

Slide 58

Slide 58 text

58 「仕事ではじめる機械学習」より 1. 問題を定式化する 2. 機械学習以外の方法を考える 3. アルゴリズムを選定する 4. 特徴量、教師データとログの設計をする 5. 前処理をする 6. 学習・パラメータチューニング 7. 評価

Slide 59

Slide 59 text

59 特徴量、教師データとログの設計をする どんなデータをどこからとってきて どういう形にするべきか

Slide 60

Slide 60 text

60 ざっくり考えてみる… • スティーブン・セガールが出演した映画のデータ • 出演者 • 公開年 • ジャンル • 上映時間 • …など • 邦題も必要

Slide 61

Slide 61 text

61 データ取得先の候補 TMDb API OMDb API

Slide 62

Slide 62 text

62 The Movie Database API (TMDb API) • APIでデータをとってこれ る • 無償(重要) • 特徴量として使えそうな データが少なめ • https://www.themovied b.org/

Slide 63

Slide 63 text

63 The Open Movie Database API(OMDb API) • APIでデータをとってこれ る • 無償(重要) • 特徴量として使えそうな データが多め • http://www.omdbapi.co m/

Slide 64

Slide 64 text

64 OMDb APIに決定しそうな勢いだったが… OMDb APIは必ず作品名か IMDbのIDを投げないといけない

Slide 65

Slide 65 text

65 どういうことか 理想はリクスエストパラメータに「Seagal」とか投げ て、セガール映画のデータを一気に取りたかった • OMDb APIはそれができない(タイトルかIMDb IDがい る) • セガール映画のIDリストを別途用意して、それをもとに OMDb APIに投げる必要あり

Slide 66

Slide 66 text

66 セガール映画のIMDb IDを一気に取得したい TMDb APIで可能

Slide 67

Slide 67 text

67 データ取得先の候補 2つのAPIを両方使うことに決定

Slide 68

Slide 68 text

68 次の問題 邦題はどうする?

Slide 69

Slide 69 text

69 Wikipediaをスクレイピングせざるをえない

Slide 70

Slide 70 text

70 APIのデータとWikipedia(邦題)データ 「原題」で結合する

Slide 71

Slide 71 text

71 まとめ • TMDbのAPIからスティーブン・セガールが出演した 映画のIMDbのIDを取得する • OMDbのAPIからスティーブン・セガールが出演した 映画のデータを取得する • スティーブン・セガールのWikipediaから原題と邦題 のデータを取得する • 上記2つのデータを「原題」で結合する

Slide 72

Slide 72 text

72 「仕事ではじめる機械学習」より 1. 問題を定式化する 2. 機械学習以外の方法を考える 3. アルゴリズムを選定する 4. 特徴量、教師データとログの設計をする 5. 前処理をする 6. 学習・パラメータチューニング 7. 評価

Slide 73

Slide 73 text

73 前処理をする • TMDbのAPIからスティーブン・セガールが出演した 映画のIMDbのIDを取得する • OMDbのAPIからスティーブン・セガールが出演した 映画のデータを取得する • スティーブン・セガールのWikipediaから原題と邦題 のデータを取得する • 上記2つのデータを「原題」で結合する

Slide 74

Slide 74 text

74 /discover/movie • /discover/movie • ここに欲しい映画に関す るワードをリクエストに 投げれば、IMDb IDがレ スポンスとして取得でき る

Slide 75

Slide 75 text

75 リクスエストパラメータ セガールの名前ではなくIDが必要

Slide 76

Slide 76 text

76 /search/person • /search/person • queryに「seagal」と投げ てセガールのIDを取得す る

Slide 77

Slide 77 text

77 ついにAlteryxが登場

Slide 78

Slide 78 text

78 1.セガールID取得ワークフロー

Slide 79

Slide 79 text

79 1.セガールID取得ワークフロー

Slide 80

Slide 80 text

80 1.セガールID取得ワークフロー

Slide 81

Slide 81 text

81 1.セガールID取得ワークフロー

Slide 82

Slide 82 text

82 2.セガール映画データ取得ワークフロー

Slide 83

Slide 83 text

83 2.セガール映画データ取得ワークフロー セガールIDを使用して セガール映画のIMDb IDを取得

Slide 84

Slide 84 text

84 2.セガール映画データ取得ワークフロー

Slide 85

Slide 85 text

85 2.セガール映画データ取得ワークフロー セガール映画のIMDb IDを使用して セガール映画のデータを取得

Slide 86

Slide 86 text

86 2.セガール映画データ取得ワークフロー

Slide 87

Slide 87 text

87 2.セガール映画データ取得ワークフロー

Slide 88

Slide 88 text

88 2.セガール映画データ取得ワークフロー

Slide 89

Slide 89 text

89 前処理をする • TMDbのAPIからスティーブン・セガールが出演した 映画のIMDbのIDを取得する • OMDbのAPIからスティーブン・セガールが出演した 映画のデータを取得する • スティーブン・セガールのWikipediaから原題と邦題 のデータを取得する • 上記2つのデータを「原題」で結合する

Slide 90

Slide 90 text

90 3.セガール映画の邦題取得ワークフロー

Slide 91

Slide 91 text

91 Dashblock Webサイトの任意の値を API化して取得できるア プリケーション https://dashblock.com/

Slide 92

Slide 92 text

92 3.セガール映画の邦題取得ワークフロー DashblockでWikipediaのデータを API化し、そこからGET

Slide 93

Slide 93 text

93 3.セガール映画の邦題取得ワークフロー 取得したJSONを整形

Slide 94

Slide 94 text

94 3.セガール映画の邦題取得ワークフロー

Slide 95

Slide 95 text

95 前処理をする • TMDbのAPIからスティーブン・セガールが出演した 映画のIMDbのIDを取得する • OMDbのAPIからスティーブン・セガールが出演した 映画のデータを取得する • スティーブン・セガールのWikipediaから原題と邦題 のデータを取得する • 上記2つのデータを「原題」で結合する

Slide 96

Slide 96 text

96 3.セガール映画データと邦題の結合ワークフロー

Slide 97

Slide 97 text

97 3.セガール映画データと邦題の結合ワークフロー 原題で結合

Slide 98

Slide 98 text

98 3.セガール映画データと邦題の結合ワークフロー 想定以上に結合漏れする映画が発生 (数十件)

Slide 99

Slide 99 text

99 どういうことか API側とWikipediaで大文字と小文字の表記が異なっ ていた • 「Above the Law」と「Above The Law」など • 双方とも全て大文字に変換してから結合することで対策

Slide 100

Slide 100 text

100 3.セガール映画データと邦題の結合ワークフロー それでも結合漏れする映画が発生

Slide 101

Slide 101 text

101 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

Slide 102

Slide 102 text

102 本来結合するべきはずの映画たち Urban Justice • 原題は「Renegade Justice」(Wikipediaはこっち) • しかしアメリカ版DVDだけ「Urban Justice」(API側は こっち) • ちなみに邦題は「沈黙の報復」

Slide 103

Slide 103 text

103 本来結合するべきはずの映画たち 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%とこの作品と判断。 • ちなみに邦題は「キリング・サラザール 沈黙の作戦」

Slide 104

Slide 104 text

104 この2作品はどうする? 面倒なので出力したcsvを直接編集した

Slide 105

Slide 105 text

105 3.セガール映画データと邦題の結合ワークフロー 邦題に「沈黙」を含んでたらTrue

Slide 106

Slide 106 text

106 3.セガール映画データと邦題の結合ワークフロー

Slide 107

Slide 107 text

107 これでデータは揃った…? まだ前処理は終わらない

Slide 108

Slide 108 text

108 機械学習の前処理として避けられない • ダミー変数(化) • 欠損値の補完 • 正規化

Slide 109

Slide 109 text

109 ダミー変数とは 題名 脚本 Above the Law Andrew Davis (story) Hard to Kill Steven McKay Marked for Death Michael Grais Out for Justice R. Lance Hill

Slide 110

Slide 110 text

110 ダミー変数とは 題名 脚本_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 …

Slide 111

Slide 111 text

111 欠損値とは • 一言でいうとNULLのこと • NULLがあると学習が回らない • 補完する必要がある • 手法はいろいろ… • 平均を代入する • 中央値を代入する • 最頻出値を代入する • 任意の固定値を代入する • …などなど

Slide 112

Slide 112 text

112 正規化とは データ等々を一定のルール(規則)に基づいて変形し、 利用しやすくすること。 • by Wikipedia • 例えば身長と体重は純粋に数字だけで比較できない • 同じ粒度に変換して、計算や比較を行いやすいようにする

Slide 113

Slide 113 text

113 欠損値補完、正規化、ダミー変数化するWF

Slide 114

Slide 114 text

114 欠損値補完、正規化、ダミー変数化するWF

Slide 115

Slide 115 text

115 欲張り屋さんなんだから~ 気になるデータがまだ2つあります

Slide 116

Slide 116 text

116 学習に使えそうな2つのデータ • 映画のあらすじ • 文章データ • ポスター画像(のURL) • 画像データ

Slide 117

Slide 117 text

117 学習に使えそうな2つのデータ

Slide 118

Slide 118 text

118 これらを学習に使うためには? • 映画のあらすじ • 自然言語処理 • ポスター画像(のURL) • 画像認識

Slide 119

Slide 119 text

119 二兎追う者は一兎も得ず (時間的にもスキル的にも) どちらか一方しかできない

Slide 120

Slide 120 text

120 二兎追う者は一兎も得ず ポスター画像から学習に使えそうなデータを とってくることにしました

Slide 121

Slide 121 text

121 理由 • 日本の配給会社は映画の内容と関係なく「沈黙」をつけて いる • 「映画のあらすじ」は映画の内容を表しているデータなの で、今回の学習・予測には不適格と判断

Slide 122

Slide 122 text

122 ポスター画像から何をデータとして取り出すのか • 前作(「沈黙の分析2」@大 阪)で下記の発言をした • 「ポスター画像内でセガール の顔が占める割合」が大きい ほど「沈黙」がつくのでは …?(沈黙の仮説) ※TMDB APIから取得したポスター画像(沈黙の追撃) https://m.media-amazon.com/images/M/MV5BMjM2MjAyMDUzMl5BMl5BanBnXkFtZTgwNTMxNjAwNzE@._V1_SX300.jpg

Slide 123

Slide 123 text

123 沈黙の画像 セガール映画のポスター画像の中で セガールの顔が占める割合を計算し そのデータを学習データをして使用する

Slide 124

Slide 124 text

124 Amazon Rekognition

Slide 125

Slide 125 text

125 有名人の認識 ※TMDB APIから取得したポスター画像(沈黙の追撃) https://m.media-amazon.com/images/M/MV5BMjM2MjAyMDUzMl5BMl5BanBnXkFtZTgwNTMxNjAwNzE@._V1_SX300.jpg

Slide 126

Slide 126 text

126 沈黙の画像認識 全画像に一括で「有名人認識」を 実行すればすぐ終わるやん

Slide 127

Slide 127 text

127 沈黙の画像認識 そうは問屋が卸さなかった

Slide 128

Slide 128 text

128 複数のケースが発生 • セガールと認識された+写ってる人間が1人 • セガールと認識された+写ってる人間が複数 • セガールと認識されないが顔としては認識された+写って る人間が1人 • セガールと認識されないが顔としては認識された+写って る人間が複数 • セガールと認識されない+そもそも顔自体が認識されない • 別の有名人と認識されたが、よく見たらセガールだった

Slide 129

Slide 129 text

129 複数のケースが発生 • 取得できるデータはJSON形式 • データだけではどれがセガールか分 からないケースが出てきた • SDKやAWS CLIを使用した場合、 画像自体は確認できないため

Slide 130

Slide 130 text

130 セガールと認識された+写ってる人間が1人 • そこに写っているのはセ ガール本人であると判断 • 取得したデータをそのま ま使用する ※TMDB APIから取得したポスター画像(沈黙の追撃) https://m.media-amazon.com/images/M/MV5BMjM2MjAyMDUzMl5BMl5BanBnXkFtZTgwNTMxNjAwNzE@._V1_SX300.jpg

Slide 131

Slide 131 text

131 セガールと認識された+写ってる人間が複数 • セガールと判断された データはセガール本人で あると判断(信用する) • セガール部分のデータを そのまま使用する ※TMDB APIから取得したポスター画像(弾突 DANTOTSU) https://m.media-amazon.com/images/M/MV5BMTY0MjM0OTQ4OV5BMl5BanBnXkFtZTcwODg4NjI5MQ@@._V1_SX300.jpg

Slide 132

Slide 132 text

132 セガールと認識されないが顔としては認識された+写ってる人間が1人 • 画像を目視してセガール 本人であることを確認 • セガール本人と確認でき たものはそのままデータ を使用する ※TMDB APIから取得したポスター画像(沈黙の激突) https://m.media-amazon.com/images/M/MV5BMTQ2ODkyODAyM15BMl5BanBnXkFtZTgwNjY0NjAwNzE@._V1_SX300.jpg

Slide 133

Slide 133 text

133 セガールと認識されないが顔としては認識された+写ってる人間が複数 • 画像を目視してどれがセ ガールなのか確認 • セガール本人と確認でき たデータを使用する ※TMDB APIから取得したポスター画像(沈黙の帝王) https://m.media- amazon.com/images/M/MV5BNzZlYWNmYzItMTVlMC00MDNlLWI3MzEtNGE1Njg4ZmZiMWYzXkEyXkFqcGdeQXVyMjE4ODM 4MjI@._V1_SX300.jpg

Slide 134

Slide 134 text

134 セガールと認識されない+そもそも顔自体が認識されない • 「顔の分析」という別の 機能を使用 • 複数人が写っている場合 は、画像を目視してどれ がセガールなのか確認 • セガール本人と確認でき たデータを使用する ※TMDB APIから取得したポスター画像(沈黙の粛清) https://m.media- amazon.com/images/M/MV5BMGI1ODNkYTQtZGM5YS00Y2NkLWJhZDQtMWQ2MzkxOGVjOGViXkEyXkFqcGdeQXVyMjMzMz Y4Njk@._V1_SX300.jpg

Slide 135

Slide 135 text

135 顔の分析 ※TMDB APIから取得したポスター画像(沈黙の粛清) https://m.media- amazon.com/images/M/MV5BMGI1ODNkYTQtZGM5YS00Y2NkLWJhZDQtMWQ2MzkxOGVjOGViXkEyXkFqcGdeQXVyMjMzMz Y4Njk@._V1_SX300.jpg

Slide 136

Slide 136 text

136 別の有名人と認識されたが、よく見たらセガールだった • データとしてはBruce Maimuth氏として認識 • 念の為目視で確認 • どう見てもセガールやな いかい • セガールのデータとして 使用 ※TMDB APIから取得したポスター画像(ハード・トゥ・キル) https://m.media-amazon.com/images/M/MV5BMTc4NzE1NTU5N15BMl5BanBnXkFtZTgwNTgwNTg4NjE@._V1_SX300.jpg

Slide 137

Slide 137 text

137 沈黙の画像認識のまとめ • 有名人認識でセガールを認識されなかったものは、ほとん ど目視で確認 • セガールの顔エリアの縦×横の値を取得した後、下記の計算 を行う • (セガールの顔エリアの縦×横)/(ポスター画像の縦× 横)

Slide 138

Slide 138 text

138 沈黙の画像認識ワークフロー

Slide 139

Slide 139 text

139 「仕事ではじめる機械学習」より 1. 問題を定式化する 2. 機械学習以外の方法を考える 3. アルゴリズムを選定する 4. 特徴量、教師データとログの設計をする 5. 前処理をする 6. 学習・パラメータチューニング 7. 評価

Slide 140

Slide 140 text

140 沈黙予測モデル作成ワークフロー

Slide 141

Slide 141 text

141 沈黙予測モデル作成ワークフロー サンプルデータだけ抽出 ※詳細は後述

Slide 142

Slide 142 text

142 沈黙予測モデル作成ワークフロー

Slide 143

Slide 143 text

143 ロジスティック回帰ツール 目的変数 (予測したい値) 説明変数 (予測に使用する変数)

Slide 144

Slide 144 text

144 ロジスティック回帰ツール 目的変数 (沈黙フラグ) 説明変数 (出演俳優とかジャンル とか…)

Slide 145

Slide 145 text

145 ロジスティック回帰ツール よくわかんないので全カラム指定してみた

Slide 146

Slide 146 text

146 ロジスティック回帰ツール

Slide 147

Slide 147 text

147 ロジスティック回帰ツール エラー

Slide 148

Slide 148 text

148 ロジスティック回帰ツール データ数に対して説明変数が多すぎると うまく学習できないらしい

Slide 149

Slide 149 text

149 ロジスティック回帰ツール データ数に対して説明変数が多すぎると うまく学習できないらしい

Slide 150

Slide 150 text

150 そもそもデータ数ってどれくらいいるのか? https://scikit-learn.org/stable/tutorial/machine_learning_map/index.html

Slide 151

Slide 151 text

151 そもそもデータ数ってどれくらいいるのか?

Slide 152

Slide 152 text

152 そもそもデータ数ってどれくらいいるのか?

Slide 153

Slide 153 text

153 そもそもデータ数ってどれくらいいるのか? 54件は少なすぎでしょ…

Slide 154

Slide 154 text

154

Slide 155

Slide 155 text

155 沈黙の復活 さすがにここでは終われないので 無理やりにでも続けます

Slide 156

Slide 156 text

156 ロジスティック回帰ツール データ数に対して説明変数が多すぎると うまく学習できないらしい

Slide 157

Slide 157 text

157 説明変数を極端に減らしてみると成功

Slide 158

Slide 158 text

158 ロジスティック回帰ツール どの説明変数をどれだけ指定するのが ベストなのか?

Slide 159

Slide 159 text

159 p値が低すぎる説明変数を省く • データが偏りすぎている変数は省く • 1が一つしかないダミー変数とか • p値が高すぎる説明変数を省く • 手法がいくつかあります

Slide 160

Slide 160 text

160 p値が低すぎる説明変数を省く • データが偏りすぎている変数は省く • 1が一つしかないダミー変数とか • p値が低すぎる説明変数を省く • 手法がいくつかあります

Slide 161

Slide 161 text

161 p値が低すぎる説明変数を省く AIC(赤池情報量基準)を使用する • 統計学者の赤池弘次氏が考案 • そのモデルのAICが小さいほど、そのモデルの精度は良い と評価できる • 説明変数を選択する基準によく用いられる

Slide 162

Slide 162 text

162 AICはいいんだけど… 「p値が一番大きい変数を1つずつ外してはAIC を確認…外してはAICを確認…」 面倒そう…

Slide 163

Slide 163 text

163 AICはいいんだけど… Alteryxは自動でできる

Slide 164

Slide 164 text

164 ステップワイズツールを投入する

Slide 165

Slide 165 text

165 ステップワイズツールを投入する 基準はAIC、p値が大きい ものから減らしていく方 法を指定

Slide 166

Slide 166 text

166 ついにロジスティック回帰成功か? これでいけるか?

Slide 167

Slide 167 text

167 ついにロジスティック回帰成功か? エラー

Slide 168

Slide 168 text

168 ついにロジスティック回帰成功か? いくらステップワイズツール入れても やっぱり説明変数多すぎるらしい

Slide 169

Slide 169 text

169 どっちの対策もやることに • データが偏りすぎている変数は省く • 1が一つしかないダミー変数とか • p値が低すぎる説明変数を省く • 手法がいくつかあります

Slide 170

Slide 170 text

170 データが偏りすぎている変数は省く • 俳優系のダミー変数はほぼ全部偏っていた • 大体、一度しか出演してない俳優 • (当然ながら)逆にセガールは全部出ている • 公開国のダミー変数もほぼ全部偏っていた • 逆にアメリカはほとんど全部公開国 • 脚本家とかもほとんど全部偏っていた • …など

Slide 171

Slide 171 text

171 説明変数の選択 偏っているか微妙なデータはどうする?

Slide 172

Slide 172 text

172 説明変数の選択 センス

Slide 173

Slide 173 text

173 データに対する知見は絶対必要 • もちろんグラフ等で偏りをしっかり確認するのは大事 • しかし、データに対する知見(センス)も必要 • 例:監督がキオニ・ワックスマンかどうかは必要と思う • キオニ・ワックスマンはいつもの何とも言えないセガール映画 を量産している監督で有名 • キオニ・ワックスマンが監督の時は「沈黙の~」になるので は??という仮説も浮かんだり。

Slide 174

Slide 174 text

174 そして… ひとまずロジスティック回帰 動きました

Slide 175

Slide 175 text

175 最終的に選択した説明変数

Slide 176

Slide 176 text

176 今回は他のアルゴリズムも使います 他のアルゴリズムも同じ要領で設定する

Slide 177

Slide 177 text

177 他のアルゴリズムも投入

Slide 178

Slide 178 text

178 他のアルゴリズムも投入 決定木 ランダムフォレスト ニューラルネットワーク

Slide 179

Slide 179 text

179 学習結果が明らかにおかしい場合もある 学習結果が明らかにおかしい場合 • 例:結果が良すぎる場合 • p値がどれも0に極めて近い(全部が有意になっている)

Slide 180

Slide 180 text

180 学習結果が明らかにおかしい場合もある 過学習(または未学習)の可能性

Slide 181

Slide 181 text

181 過学習とは • 学習したデータはバッチリ予測できる • 未知のデータはてんでダメ • テスト勉強で問題を丸暗記しただけ、な状態 • →テスト以外の問題問題が出たら解けない

Slide 182

Slide 182 text

182 交差検証(クロスバリデーション) 全データ 開発データ テストデータ 訓練データ 検証データ ※交差検証にも 色々な手法があります

Slide 183

Slide 183 text

183 交差検証(クロスバリデーション)

Slide 184

Slide 184 text

184 「仕事ではじめる機械学習」より 1. 問題を定式化する 2. 機械学習以外の方法を考える 3. アルゴリズムを選定する 4. 特徴量、教師データとログの設計をする 5. 前処理をする 6. 学習・パラメータチューニング 7. 評価

Slide 185

Slide 185 text

185 モデルの評価 そのモデルの予測精度はいいのか? それとも悪いのか?

Slide 186

Slide 186 text

186 モデルの評価指標 • 正解率 • 適合率 • 再現率 • F値

Slide 187

Slide 187 text

187 正解率(Accuracy) 正解した数 / 予測した全データ数 • シンプル • これでいい?

Slide 188

Slide 188 text

188 正解率(Accuracy) 正解率で精度を評価するのはダメ

Slide 189

Slide 189 text

189 正解率(Accuracy) すべて「沈黙がつく」と予測するモデル • データの偏りによってはそれなりの精度になる • そのモデルに意味はあるか?

Slide 190

Slide 190 text

190 ではどうすれば? 適合率と再現率を見る

Slide 191

Slide 191 text

191 適合率と再現率 適合率(Precision) • モデルがTrueと予測したうち、実際に正解していた割合 • 「沈黙がついている」と予測したうち、実際に正解してい た割合 再現率(Recall) • 全データに含まれるTrueのうち、モデルが正解した割合 • 実際に「沈黙」がついている映画のうち、モデルが実際に 正解した割合

Slide 192

Slide 192 text

192 適合率と再現率 適合率と再現率はトレード・オフの関係 正確性 見逃し 適合率 高 多 再現率 低 少

Slide 193

Slide 193 text

193 適合率、再現率、F値 どの指標を優先するかは、分析の要件による • 今回の「沈黙の予測」は予測するからには外したくないの で、適合率優先でいきます。

Slide 194

Slide 194 text

194 F値 • 適合率と再現率のバランスを表した指標 • 1に近いほどよい

Slide 195

Slide 195 text

195 どうやって出すのか Alteryxはこれらの指標も出してくれます

Slide 196

Slide 196 text

196 モデル比較ツールを投入する

Slide 197

Slide 197 text

197 モデル比較ツールを投入する

Slide 198

Slide 198 text

198 モデル比較ツールを投入する

Slide 199

Slide 199 text

199 混同行列(Confusion Matrix) 実際の結果が負 (沈黙なし) 実際の結果が真 (沈黙なし) 予測した結果が 負(沈黙なし) 予測した結果が 真(沈黙あり)

Slide 200

Slide 200 text

200 混同行列(Confusion Matrix) 実際の結果が負 (沈黙なし) 実際の結果が真 (沈黙なし) 予測した結果が 負(沈黙なし) 真陰性 偽陰性 予測した結果が 真(沈黙あり) 偽陽性 真陽性

Slide 201

Slide 201 text

201 混同行列(Confusion Matrix) 実際の結果が負 (沈黙なし) 実際の結果が真 (沈黙なし) 予測した結果が 負(沈黙なし) 5 3 予測した結果が 真(沈黙あり) 4 10

Slide 202

Slide 202 text

202 混同行列(Confusion Matrix) 実際の結果が負 (沈黙なし) 実際の結果が真 (沈黙なし) 予測した結果が 負(沈黙なし) 5 3 予測した結果が 真(沈黙あり) 4 10 10 / 4+10 = 適合率

Slide 203

Slide 203 text

203 混同行列(Confusion Matrix) 実際の結果が負 (沈黙なし) 実際の結果が真 (沈黙なし) 予測した結果が 負(沈黙なし) 5 3 予測した結果が 真(沈黙あり) 4 10 10 /3+10 = 再現率

Slide 204

Slide 204 text

204 再掲

Slide 205

Slide 205 text

205 数値の名前を説明に合わせます 正解率 F値

Slide 206

Slide 206 text

206 数値の名前を説明に合わせます 再現率 ※なぜか適合率はない…

Slide 207

Slide 207 text

207 今回の結果 適合率 再現率 F値 ロジスティック 回帰 66% 61% 0.52 決定木 60% 69% 0.37 ランダム フォレスト 71% 76% 0.58 ニューラル ネットワーク 53% 69% 0.37

Slide 208

Slide 208 text

208 今回の結果 ランダムフォレスト(で作成したモデル)を 採用します

Slide 209

Slide 209 text

209 他にも評価するための手法は色々あります • リフトチャート • 適合率再現率曲線 • ROC曲線 • …など

Slide 210

Slide 210 text

210 圧倒的沈黙…ッッ… ついに「沈黙」を予測する時がきた

Slide 211

Slide 211 text

211 沈黙のワークフロー

Slide 212

Slide 212 text

212 沈黙のワークフロー 予測したいデータ

Slide 213

Slide 213 text

213 沈黙のワークフロー さっき作成したモデル

Slide 214

Slide 214 text

214 沈黙のワークフロー 予測したいデータの形式も、 学習時と同一にしておく (ダミー変数化や正規化など)

Slide 215

Slide 215 text

215 沈黙の予測結果

Slide 216

Slide 216 text

216 沈黙の予測結果 「Sheep Impact」と「80’s Blockbusters~」 に邦題をつけるとしたら、約60%の確率で 「沈黙」がつく

Slide 217

Slide 217 text

217 80's Blockbusters, When Hollywood Played Toughを詳しく • 80年代アクションスターに関するドキュメンタリー • スタローンとかシュワちゃんとか • どうやら制作はフランス? • 作品としての評価はあまり良くない • https://www.amazon.com/Blockbusters-When-Hollywood- Played-Tough/dp/B076QX1HV1#customer-review-section • そもそもセガールはメインじゃない

Slide 218

Slide 218 text

218 所詮は機械学習… セガールが主人公じゃないドキュメンタリー なんかに「沈黙」の名は与えられない

Slide 219

Slide 219 text

219 Sheep Impactを詳しく • 2010年に放映されたオーストラリアの短編映画(4分) • カールトン&ユナイテッドブルワリーズの広告として制作 された(ほとんどCM) • セガールとその友人がバーベキューに肉を持ち込んだら起 訴されて色々揉める話? • YouTubeで普通に見れる • https://youtu.be/LgXXC7OTD3g

Slide 220

Slide 220 text

220 私が命名します 「沈黙の羊たち」

Slide 221

Slide 221 text

221 セガール vs レクター博士? どこかで聞いたことがあるような…?

Slide 222

Slide 222 text

222 まとめに入ります

Slide 223

Slide 223 text

223 今回のプロジェクトの問題点 データ少なすぎ • そもそも問題設定からして無理があった • 一人の俳優が出演した作品数なんて多くても2桁どまり • モデルの精度にも影響が出た アルゴリズムわかってなさすぎ • ハイパーパラメータの調整とか一切やってない • そもそもアルゴリズムの選び方が適当すぎる

Slide 224

Slide 224 text

224 総まとめ 問題設定はしっかり 機械学習以外の方法を真剣に考える データに対する知識のある人が必要 • そのデータの内容をわかっていないと分析は不可 アルゴリズムの使い方がわかる人が必要 • 今回のように”なあなあ”でやってもモデルは作れてしまう 前処理はやっぱり時間がかかる

Slide 225

Slide 225 text

225