Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

2,044 views

Published on

データサイエンスLT祭り 2夜目 のLT資料です

Published in: Engineering
  • Be the first to comment

機械学習するな機会学習しろ - データサイエンスLT祭り 2夜目

  1. 1. 機械学習するな 機会学習しろ データサイエンスLT祭り 2夜目@Y社 @wonder_zone
  2. 2. 機械学習するな 機会学習しろ データサイエンスLT祭り 2夜目@Y社 @wonder_zone
  3. 3. あんた誰なん?
  4. 4. 私です • かんこれ(缶これ) • @wonder_zone • 研究室にて磔の刑にされたM2 • 学部:統計屋さん 修士:アルゴリズム屋さん • 趣味:ビリヤード、音楽鑑賞、アニメ • 推し:三森すずこ
  5. 5. ところで
  6. 6. 僕の友人達が最近、こ んなことを口にします
  7. 7. 彼女欲しい…
  8. 8. 俺ってなんで 彼女いない歴=年齢 なんだろ…
  9. 9. こじらせてますね
  10. 10. しかし、ちゃっかりしてる 彼らはこんなお誘いをし てくれます
  11. 11. 「○○日空いてる? 合コン行こうぜ」
  12. 12. それに対する僕の反応
  13. 13. いやあ忙しいからパス だわー(やべえ研究の 進捗出さねえと)
  14. 14. 【以前の彼ら】
  15. 15. 「これからの時代は機械 学習だよっ!」
  16. 16. だが彼らも現実を見る ようになった・・・
  17. 17. 仮に行くとして
  18. 18. そりゃ成果を出したい
  19. 19. でも、僕は聖徳太子で はないのでn人の話など きけん
  20. 20. もっと言うと1人くらいし か話がわからん!
  21. 21. ってことで、最適化され た環境がほしい
  22. 22. ていうか自分にあった 相手をその場で機械的 に判断してほしい
  23. 23. あるよ
  24. 24. マッチングアルゴリズム
  25. 25. イメージ 1. 参加する 2. 相性占いと称してデータを入力する 3. アルゴリズムで良いマッチングを算出 4. その通りに席替え 5. たぶん仲良くなれる
  26. 26. イメージ 1. 参加する 2. 相性占いと称してデータを入力する 3. アルゴリズムで良いマッチングを算出 4. その通りに席替え 5. たぶん仲良くなれる
  27. 27. マッチングアルゴリズム • 2つの集合の要素の全てが「幸せ」となるマッチング となるような組み合わせ(=安定マッチング)を発見 するアルゴリズム • よく聞く応用先 • 研修医配属における研修医と病院の組み合わせ • 研究室配属における学生と研究室の組み合わせ • ただし、研究室配属は謎の面接によって決めるパターン もあるので全ての機関が行っているとは断言できません
  28. 28. もう少しドヤ顔で語りたいなら • 最大マッチング問題の定義 • 入力:二部グラフ • 出力:サイズが最大のマッチング ※サイズ=マッチングの個数 • 安定マッチング問題の定義 • 入力:二部グラフ+各点の相手に対する好みの順 • 出力:安定的なマッチング ※安定ではない=互いに現在の相手より好ましい組が 存在(ブロッキングペアが存在) 二部グラフ
  29. 29. 言われてもわからんと 思うので良いマッチング が一撃でわかる図
  30. 30. どちらが良いマッチングですか?
  31. 31. どちらが良いマッチングですか? ↑こっち
  32. 32. これは良いマッチングですか? 1 2 3 a b c 1太郎くん「僕はb子のほう が好きなんだ!」 b子さん「私は2助くんより 1太郎くんの方が好き」
  33. 33. これは良いマッチングですか? 1 2 3 a b c 1太郎くん「僕はb子のほう が好きなんだ!」 b子さん「私は2助くんより 1太郎くんの方が好き」 ブロッキングペア(1, b)
  34. 34. これは良いマッチングですか? 1 2 3 a b c ブロッキングペアを含まないマッチング
  35. 35. この業界で超有名な やつ
  36. 36. Gale-Shapley Algorithm
  37. 37. Gale-Shapley Algorithm • Gale氏とShapley氏が提案したのでその名前から • Gale, David, and Lloyd S. Shapley. "College admissions and the stability of marriage." The American Mathematical Monthly 69.1 (1962): 9-15. • 日本でも研修医配属の時に使われているらしい (公益財団法人医療研修推進財団のHPより)
  38. 38. この功績を讃えてShapley 氏は89歳にしてノーベル 経済学賞受賞(2012) ※Gale氏は2008年に死去
  39. 39. ちなみにShapley氏は 今年3月に死去…
  40. 40. 悲しい
  41. 41. 実際のアルゴリズムの流れ 1. 初期値は男性・女性ともに独身 2. 独身の男性𝑚がいる限り、以下の操作を繰り返す 3. 現在のペアの集合を安定マッチングとする (おわり) 男性𝑚はまだ告白していない女性の中で最も好きな女性𝑤に告白 1. 女性𝑤が独身なら男性𝑚をキープ 2. 女性𝑤が独身でない(キープ相手𝑚#がいる)場合 •𝑤にとって𝑚が現在のキープ𝑚#よりも好みならば𝑚#を捨てて𝑚を キープとする •𝑤にとって𝑚よりも現在のキープ𝑚#が好みならば𝑚からの告白を 断る
  42. 42. 実際のアルゴリズムの流れ 1. 初期値は男性・女性ともに独身 2. 独身の男性𝑚がいる限り、以下の操作を繰り返す 3. 現在のペアの集合を安定マッチングとする (おわり) 男性𝑚はまだ告白していない女性の中で最も好きな女性𝑤に告白 1. 女性𝑤が独身なら男性𝑚をキープ 2. 女性𝑤が独身でない(キープ相手𝑚#がいる)場合 •𝑤にとって𝑚が現在のキープ𝑚#よりも好みならば𝑚#を捨てて𝑚を キープとする •𝑤にとって𝑚よりも現在のキープ𝑚#が好みならば𝑚からの告白を 断る
  43. 43. 実際のアルゴリズムの流れ 1. 初期値は男性・女性ともに独身 2. 独身の男性𝑚がいる限り、以下の操作を繰り返す 3. 現在のペアの集合を安定マッチングとする (おわり) 男性𝑚はまだ告白していない女性の中で最も好きな女性𝑤に告白 1. 女性𝑤が独身なら男性𝑚をキープ 2. 女性𝑤が独身でない(キープ相手𝑚#がいる)場合 •𝑤にとって𝑚が現在のキープ𝑚#よりも好みならば𝑚#を捨てて𝑚を キープとする •𝑤にとって𝑚よりも現在のキープ𝑚#が好みならば𝑚からの告白を 断る
  44. 44. 実際のアルゴリズムの流れ 1. 初期値は男性・女性ともに独身 2. 独身の男性𝑚がいる限り、以下の操作を繰り返す 3. 現在のペアの集合を安定マッチングとする (おわり) 男性𝑚はまだ告白していない女性の中で最も好きな女性𝑤に告白 1. 女性𝑤が独身なら男性𝑚をキープ 2. 女性𝑤が独身でない(キープ相手𝑚#がいる)場合 •𝑤にとって𝑚が現在のキープ𝑚#よりも好みならば𝑚#を捨てて𝑚を キープとする •𝑤にとって𝑚よりも現在のキープ𝑚#が好みならば𝑚からの告白を 断る
  45. 45. 実際のアルゴリズムの流れ 1. 初期値は男性・女性ともに独身 2. 独身の男性𝑚がいる限り、以下の操作を繰り返す 3. 現在のペアの集合を安定マッチングとする (おわり) 男性𝑚はまだ告白していない女性の中で最も好きな女性𝑤に告白 1. 女性𝑤が独身なら男性𝑚をキープ 2. 女性𝑤が独身でない(キープ相手𝑚#がいる)場合 •𝑤にとって𝑚が現在のキープ𝑚#よりも好みならば𝑚#を捨てて𝑚を キープとする •𝑤にとって𝑚よりも現在のキープ𝑚#が好みならば𝑚からの告白を 断る
  46. 46. 実際のアルゴリズムの流れ 1. 初期値は男性・女性ともに独身 2. 独身の男性𝑚がいる限り、以下の操作を繰り返す 3. 現在のペアの集合を安定マッチングとする (おわり) 男性𝑚はまだ告白していない女性の中で最も好きな女性𝑤に告白 1. 女性𝑤が独身なら男性𝑚をキープ 2. 女性𝑤が独身でない(キープ相手𝑚#がいる)場合 •𝑤にとって𝑚が現在のキープ𝑚#よりも好みならば𝑚#を捨てて𝑚を キープとする •𝑤にとって𝑚よりも現在のキープ𝑚#が好みならば𝑚からの告白を 断る
  47. 47. 実際のアルゴリズムの流れ 1. 初期値は男性・女性ともに独身 2. 独身の男性𝑚がいる限り、以下の操作を繰り返す 3. 現在のペアの集合を安定マッチングとする (おわり) 男性𝑚はまだ告白していない女性の中で最も好きな女性𝑤に告白 1. 女性𝑤が独身なら男性𝑚をキープ 2. 女性𝑤が独身でない(キープ相手𝑚#がいる)場合 •𝑤にとって𝑚が現在のキープ𝑚#よりも好みならば𝑚#を捨てて𝑚を キープとする •𝑤にとって𝑚よりも現在のキープ𝑚#が好みならば𝑚からの告白を 断る
  48. 48. 実際のアルゴリズムの流れ 1. 初期値は男性・女性ともに独身 2. 独身の男性𝑚がいる限り、以下の操作を繰り返す 3. 現在のペアの集合を安定マッチングとする (おわり) 男性𝑚はまだ告白していない女性の中で最も好きな女性𝑤に告白 1. 女性𝑤が独身なら男性𝑚をキープ 2. 女性𝑤が独身でない(キープ相手𝑚#がいる)場合 •𝑤にとって𝑚が現在のキープ𝑚#よりも好みならば𝑚#を捨てて𝑚を キープとする •𝑤にとって𝑚よりも現在のキープ𝑚#が好みならば𝑚からの告白を 断る
  49. 49. 実際のアルゴリズムの流れ 1. 初期値は男性・女性ともに独身 2. 独身の男性𝑚がいる限り、以下の操作を繰り返す 3. 現在のペアの集合を安定マッチングとする (おわり) 男性𝑚はまだ告白していない女性の中で最も好きな女性𝑤に告白 1. 女性𝑤が独身なら男性𝑚をキープ 2. 女性𝑤が独身でない(キープ相手𝑚#がいる)場合 •𝑤にとって𝑚が現在のキープ𝑚#よりも好みならば𝑚#を捨てて𝑚を キープとする •𝑤にとって𝑚よりも現在のキープ𝑚#が好みならば𝑚からの告白を 断る
  50. 50. 補足 • 先ほどの説明は男性の希望を優先したもの • 女性の希望を優先した場合、結果が変わることも (非対称性) • 𝑂(𝑛' ) ※ 𝑛 は男性 or 女性の数 • 非対称性の問題については提案手法もいくつかあ るが今回は省略 現実はそんなに甘くない!
  51. 51. 実際の流れ 1 2 3 C A B X C B A Y A C B Z 1 2 3 A X Y Z B Z X Y C Z Y X 男性 女性
  52. 52. 実際の流れ 1 2 3 C A B X C B A Y A C B Z 1 2 3 A X Y Z B Z X Y C Z Y X 男性 女性
  53. 53. 実際の流れ 1 2 3 C A B X C B A Y A C B Z 1 2 3 A X Y Z B Z X Y C Z Y X 男性 女性
  54. 54. 実際の流れ 1 2 3 C A B X C B A Y A C B Z 1 2 3 A X Y Z B Z X Y C Z Y X 男性 女性
  55. 55. 実際の流れ 1 2 3 C A B X C B A Y A C B Z 1 2 3 A X Y Z B Z X Y C Z Y X 男性 女性 >
  56. 56. 実際の流れ 1 2 3 C A B X C B A Y A C B Z 1 2 3 A X Y Z B Z X Y C Z Y X 男性 女性 ☓ ☓ 振られたー バイバーイ
  57. 57. 実際の流れ 1 2 3 C A B X C B A Y A C B Z 1 2 3 A X Y Z B Z X Y C Z Y X 男性 女性 ☓ ☓
  58. 58. 実際の流れ 1 2 3 C A B X C B A Y A C B Z 1 2 3 A X Y Z B Z X Y C Z Y X 男性 女性 ☓ ☓
  59. 59. 実際の流れ 1 2 3 C A B X C B A Y A C B Z 1 2 3 A X Y Z B Z X Y C Z Y X 男性 女性 ☓ ☓ >
  60. 60. 実際の流れ 1 2 3 C A B X C B A Y A C B Z 1 2 3 A X Y Z B Z X Y C Z Y X 男性 女性 ☓ ☓ ☓
  61. 61. 実際の流れ 1 2 3 C A B X C B A Y A C B Z 1 2 3 A X Y Z B Z X Y C Z Y X 男性 女性 ☓ ☓ ☓ >
  62. 62. 実際の流れ 1 2 3 C A B X C B A Y A C B Z 1 2 3 A X Y Z B Z X Y C Z Y X 男性 女性 ☓ ☓ ☓ ☓ ☓
  63. 63. 実際の流れ 1 2 3 C A B X C B A Y A C B Z 1 2 3 A X Y Z B Z X Y C Z Y X 男性 女性 ☓ ☓ ☓ ☓ ☓
  64. 64. 実際の流れ 1 2 3 C A B X C B A Y A C B Z 1 2 3 A X Y Z B Z X Y C Z Y X 男性 女性 ☓ ☓ ☓ ☓ ☓
  65. 65. シミュレーションしよう • 以下の擬似データを用いてマッチング • 男性陣 僕の周りで彼女欲しがってそうな人々を想定した データ • 女性陣 以前知り合った彼氏欲しがってる人々を想定した データ
  66. 66. こんなんパッケージとか ないやろ フルスクラッチやなあ
  67. 67. と思ったらあったよRに
  68. 68. matchingR
  69. 69. Install.packages(“matchingR”)
  70. 70. Rはいいぞ
  71. 71. 実際に行う操作 • 男女のプロフィールのデータセットとそれぞれ互い のプロフィールに対し求める条件を作り、1項目に つき、条件を満たしてたらスコアに+1点 • 満たす数が多ければ多いほどスコアは上がる • 現実はどの方がいいか迷う状態もあるので同一の スコアがおるのもありとする
  72. 72. プロフィールのデータ内容 • 男性は • 身長(cm) • 趣味の平凡度(0 – 5) • 交際経験人数 • 稼ぐ意欲があるか(あり = 1, なし = 0) • 眼鏡をかけているか(あり = 1, なし = 0) • 女性は • 身長(cm) • 趣味の平凡度(0 – 5) • 交際経験人数 • おしゃべりが得意か(得意 = 1, そうでもない = 0) • 眼鏡をかけているか(あり = 1, なし = 0)
  73. 73. ß0-(平凡度)-5à有無言わさず0
  74. 74. データセット(男性編) • 男性1(Gさん) • 173cm, 趣味: 1, 交際経験人数:1, 稼ぎ: 1, 眼鏡: 1 • 男性2(Cさん) • 171cm, 趣味: 2, 交際経験人数: 1, 稼ぎ: 1, 眼鏡: 1 • 男性3(Tさん) • 175cm, 趣味: 0, 交際経験人数: 0, 稼ぎ: 1, 眼鏡: 1 • 男性4(Hさん) • 180cm, 趣味: 1, 交際経験人数: 1, 稼ぎ: 0, 眼鏡: 0 • 男性5(Sさん) • 164cm, 趣味: 0, 交際経験人数: 0, 稼ぎ: 0, 眼鏡: 0
  75. 75. データセット(女性編) • 女性1(A子さん) • 160cm, 趣味: 5, 交際経験人数: 5, 話: 1, 眼鏡: 0 • 女性2(B美さん) • 152cm, 趣味: 4, 交際経験人数: 2, 話: 1, 眼鏡: 0 • 女性3(C里さん) • 155cm, 趣味: 0, 交際経験人数: 0, 話: 0, 眼鏡: 1 • 女性4(D央さん) • 146cm, 趣味: 1, 交際経験人数: 1, 話: 0, 眼鏡: 1 • 女性5(E華さん) • 158cm, 趣味: 4, 交際経験人数: 3, 話: 0, 眼鏡: 0
  76. 76. 相手に求める条件(男性編) • ↑ = 以上, ↓ = 以下 • 男性1(Gさん) • 157cm↑, 趣味: 2↑, 交際経験人数: 0, 話: 1, 眼鏡: 0 • 男性2(Cさん) • 158cm↓, 趣味: 0↑, 交際経験人数: 3↓, 話: 0, 眼鏡: 0↑ • 男性3(Tさん) • 160cm↑, 趣味: 1↑, 交際経験人数: 0, 話: 1, 眼鏡: 0↑ • 男性4(Hさん) • 150cm↑, 趣味: 1↓, 交際経験人数: 1↓, 話: 0, 眼鏡: 0↑ • 男性5(Sさん) • 164cm, 趣味: 0, 交際経験人数: 0, 話: 0, 眼鏡: 1
  77. 77. 相手に求める条件(女性編) • ↑ = 以上, ↓ = 以下 • 女性1(A子さん) • 170cm↑, 趣味: 2↑, 交際経験人数: 1↑, 稼ぎ: 1, 眼鏡: 0↑ • 女性2(B美さん) • 170cm↑, 趣味: 1, 交際経験人数: 1↑, 稼ぎ: 1, 眼鏡: 1 • 女性3(C里さん) • 160cm↑, 趣味: 2↑, 交際経験人数: 0↑, 稼ぎ: 1, 眼鏡: 0↑ • 女性4(D央さん) • 165cm↑, 趣味: 1↑, 交際経験人数: 3↓, 稼ぎ: 0, 眼鏡: 0↑ • 女性5(E華さん) • 160cm↓, 趣味: 1↑, 交際経験人数: 2↓, 稼ぎ: 1, 眼鏡: 0↑
  78. 78. 結果
  79. 79. 結果 matching$proposals [,1] [1,] 2 [2,] 4 [3,] 1 [4,] 5 [5,] 3 (Gさん, B美さん) (Cさん, D央さん) (Tさん, A子さん) (Hさん, E華さん) (Sさん, C里さん)
  80. 80. 今後の課題 • 合コンに参加する • 実行する • 1人勝ちするタイプのやつは消し去る
  81. 81. こんなんもどうです?
  82. 82. \おしまい/

×