Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

3 自己紹介 玉井 励(タマイ レイ) • データアナリティクス事業本部 • 大阪オフィス勤務 • 奈良県奈良市出身 • 奈良県葛城市在住 • 群れない 媚びない 頑張らない

Slide 4

Slide 4 text

4 空前の機械学習ブーム

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 本日お話すること • 機械学習を使ったデータ分析プロジェクトをやって みたという経験談(Alteryxというツールを使用) • スティーブン・セガールに関する簡単な説明

Slide 14

Slide 14 text

14 Alteryx?

Slide 15

Slide 15 text

15 Alteryx Designer

Slide 16

Slide 16 text

16 本日お話しないこと

Slide 17

Slide 17 text

17 本日お話しないこと • Alteryxの詳しい説明 • 機械学習に関する高度な説明 • データ分析におけるベストプラクティス • AWS等のインフラ関係 • →本作品はローカルPCの中が舞台です • スティーブン・セガールに関する詳しい説明

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

45 強化学習

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

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

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

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

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

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

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

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

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

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

Slide 69

Slide 69 text

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

Slide 70

Slide 70 text

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

Slide 71

Slide 71 text

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

Slide 72

Slide 72 text

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

Slide 73

Slide 73 text

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

Slide 74

Slide 74 text

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

Slide 75

Slide 75 text

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

Slide 76

Slide 76 text

76 ついにAlteryxが登場

Slide 77

Slide 77 text

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

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 2.セガール映画データ取得ワークフロー

Slide 82

Slide 82 text

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

Slide 83

Slide 83 text

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

Slide 84

Slide 84 text

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

Slide 85

Slide 85 text

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

Slide 86

Slide 86 text

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

Slide 87

Slide 87 text

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

Slide 88

Slide 88 text

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

Slide 89

Slide 89 text

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

Slide 90

Slide 90 text

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

Slide 91

Slide 91 text

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

Slide 92

Slide 92 text

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

Slide 93

Slide 93 text

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

Slide 94

Slide 94 text

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

Slide 95

Slide 95 text

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

Slide 96

Slide 96 text

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

Slide 97

Slide 97 text

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

Slide 98

Slide 98 text

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

Slide 99

Slide 99 text

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

Slide 100

Slide 100 text

100 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 101

Slide 101 text

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

Slide 102

Slide 102 text

102 本来結合するべきはずの映画たち 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 103

Slide 103 text

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

Slide 104

Slide 104 text

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

Slide 105

Slide 105 text

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

Slide 106

Slide 106 text

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

Slide 107

Slide 107 text

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

Slide 108

Slide 108 text

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

Slide 109

Slide 109 text

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

Slide 110 text

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

Slide 111

Slide 111 text

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

Slide 112

Slide 112 text

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

Slide 113

Slide 113 text

113 4.正規化とダミー変数化するワークフロー

Slide 114

Slide 114 text

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

Slide 115

Slide 115 text

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

Slide 116

Slide 116 text

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

Slide 117

Slide 117 text

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

Slide 118

Slide 118 text

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

Slide 119

Slide 119 text

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

Slide 120

Slide 120 text

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

Slide 121

Slide 121 text

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

Slide 122

Slide 122 text

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

Slide 123

Slide 123 text

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

Slide 124

Slide 124 text

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

Slide 125

Slide 125 text

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

Slide 126

Slide 126 text

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

Slide 127

Slide 127 text

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

Slide 128

Slide 128 text

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

Slide 129

Slide 129 text

129

Slide 130

Slide 130 text

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

Slide 131

Slide 131 text

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

Slide 132

Slide 132 text

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

Slide 133

Slide 133 text

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

Slide 134

Slide 134 text

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

Slide 135

Slide 135 text

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

Slide 136

Slide 136 text

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

Slide 137

Slide 137 text

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

Slide 138

Slide 138 text

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

Slide 139

Slide 139 text

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

Slide 140

Slide 140 text

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

Slide 141

Slide 141 text

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

Slide 142

Slide 142 text

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

Slide 143

Slide 143 text

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

Slide 144

Slide 144 text

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

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 最終的に選択した説明変数

Slide 151

Slide 151 text

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

Slide 152

Slide 152 text

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

Slide 153

Slide 153 text

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

Slide 154

Slide 154 text

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

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

Slide 160

Slide 160 text

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

Slide 161

Slide 161 text

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

Slide 162

Slide 162 text

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

Slide 163

Slide 163 text

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

Slide 164

Slide 164 text

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

Slide 165

Slide 165 text

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

Slide 166

Slide 166 text

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

Slide 167

Slide 167 text

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

Slide 168

Slide 168 text

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

Slide 169

Slide 169 text

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

Slide 170

Slide 170 text

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

Slide 171

Slide 171 text

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

Slide 172

Slide 172 text

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

Slide 173

Slide 173 text

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

Slide 174

Slide 174 text

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

Slide 175

Slide 175 text

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

Slide 176

Slide 176 text

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

Slide 177

Slide 177 text

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

Slide 178

Slide 178 text

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

Slide 179

Slide 179 text

179 再掲

Slide 180

Slide 180 text

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

Slide 181

Slide 181 text

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

Slide 182

Slide 182 text

182 今回の結果 適合率 再現率 F値 ロジスティック 回帰 45% 71% 0.42 決定木 54% 85% 0.57 ランダム フォレスト 58% 100% ※ 0.61 ニューラル ネットワーク 58% 100% ※ 0.61 ※100%とか出てる時点でダメダメすぎるんだけどこのまま続行

Slide 183

Slide 183 text

183 頂上決戦

Slide 184

Slide 184 text

184 頂上決戦 真陽性 偽陽性

Slide 185

Slide 185 text

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

Slide 186

Slide 186 text

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

Slide 187

Slide 187 text

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

Slide 188

Slide 188 text

188 沈黙のワークフロー

Slide 189

Slide 189 text

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

Slide 190

Slide 190 text

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

Slide 191

Slide 191 text

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

Slide 192

Slide 192 text

192 沈黙の予測結果

Slide 193

Slide 193 text

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

Slide 194

Slide 194 text

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

Slide 195

Slide 195 text

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

Slide 196

Slide 196 text

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

Slide 197

Slide 197 text

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

Slide 198

Slide 198 text

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

Slide 199

Slide 199 text

199 まとめに入ります

Slide 200

Slide 200 text

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

Slide 201

Slide 201 text

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

Slide 202

Slide 202 text

202

Slide 203

Slide 203 text

203 「沈黙の分析」 3作目 制作決定

Slide 204

Slide 204 text

204 忘れられし説明変数… 「映画のあらすじ」… 自然言語処理…難解…

Slide 205

Slide 205 text

205 映画ポスター画像のURLまで… 画像認識…? 何に使えるというのか…?

Slide 206

Slide 206 text

206 「沈黙の分析3」 11月1日(金) 東京都 ベルサール東京日本橋 5F

Slide 207

Slide 207 text

207