狠狠撸

狠狠撸Share a Scribd company logo
Taste of Wine
vs. Data Science
~単変量の還元主義からは見えない「味わい」を
多変量モデリングは解き明かせるか~
株式会社リクルートコミュニケーションズ
尾崎 隆 (Takashi J. OZAKI, Ph. D.)
2015/10/17 1
2015/10/17 2
自己紹介
自己紹介
ブログやってます
2015/10/17 3
2015/10/17 4
本日のお題
こんな本を最近読みました
2015/10/17 5
『新しいワインの科学』の内容
? 第1部 ブドウ栽培の科学
? ブドウとはどんな植物か、テロワールの正体に迫る、土とブドウ 他
? 第2部 ワイン醸造の科学
? 酸素管理とワインの品質、全房発酵とマセラシオン?カルボニック、
風味を決めるオーク樽の秘密 他
? 第3部 ワインと人体の科学
? ワイン?テイスティングと感覚の個人差、脳が風味を感じる仕組み、
唾液が鍵を握るワインの味 他
2015/10/17 6
『新しいワインの科学』の内容
? 第1部 ブドウ栽培の科学
? ブドウとはどんな植物か、テロワールの正体に迫る、土とブドウ 他
? 第2部 ワイン醸造の科学
? 酸素管理とワインの品質、全房発酵とマセラシオン?カルボニック、
風味を決めるオーク樽の秘密 他
? 第3部 ワインと人体の科学
? ワイン?テイスティングと感覚の個人差、脳が風味を感じる仕組み、
唾液が鍵を握るワインの味 他
2015/10/17 7
『新しいワインの科学』の内容
? 第1部 ブドウ栽培の科学
? ブドウとはどんな植物か、テロワールの正体に迫る、土とブドウ 他
? 第2部 ワイン醸造の科学
? 酸素管理とワインの品質、全房発酵とマセラシオン?カルボニック、
風味を決めるオーク樽の秘密 他
? 第3部 ワインと人体の科学
? ワイン?テイスティングと感覚の個人差、脳が風味を感じる仕組み、
唾液が鍵を握るワインの味 他
?主観的な体験を科学する???
2015/10/17 8
そもそもワインの味ってどんなもの?
? 基礎的な味覚
? 酸味
? 甘味
? 渋味
? 旨味
…
2015/10/17 9
そもそもワインの味ってどんなもの?
? ワインに固有の味覚表現
? 「ミネラル感」
? 「トースト感」
? 「果実味」
? 「スモーキー感」
…
2015/10/17 10
そもそもワインの味ってどんなもの?
? ワインの味の評価は、先に述べたような様々な味の「要素」
を総合して決められることが多い
2015/10/17 11
2015/10/17 12
それはどう見ても
主観的なものでしか
ないのでは?
2015/10/17 13
何か客観的な指標で
ワインの味の評価を
決めることは
できないのだろうか
2015/10/17 14
例えばデータサイエンス
のような方法論で客観的に
味の評価を決められれば…
UC Irvine Machine Learning Repositoryという
オープンデータセットがあります
2015/10/17 15
その中に“Wine Quality”というデータセットがあります
2015/10/17 16
その中に“Wine Quality”というデータセットがあります
2015/10/17 17
“Wine Quality”の中身はこんな感じ
2015/10/17 18
fixed.acidity … residual.sugar … pH sulphates alcohol quality
11.6 … 2.2 … 3.25 0.57 9 3
7.4 … 4.4 … 3.38 0.5 9 4
7.4 … 1.9 … 3.51 0.56 9.4 5
11.2 … 1.9 … 3.16 0.58 9.8 6
7.3 … 1.2 … 3.39 0.47 10 7
7.9 … 3.6 … 3.35 0.86 12.8 8
11項目の化学測定指標と、ワインの評価スコアから成る
? fixed acidity
? volatile acidity
? citric acid
? residual sugar
? chlorides
? free sulfur dioxide
? total sulfur dioxide
? density
? pH
? sulphates
? alcohol
2015/10/17 19
quality (3 – 8)
個々の説明変数の内訳
? fixed acidity:酒石酸濃度
? volatile acidity:酢酸濃度
? citric acid:クエン酸濃度
? residual sugar:残糖濃度
? chlorides:塩化ナトリウム濃度
? free sulfur dioxide:遊離SO2濃度
? total sulfur dioxide:総SO2濃度
? density:密度
? pH:pH(そのまんま)
? sulphates:硫化カリウム濃度
? alcohol:アルコール度数
2015/10/17 20
『新しいワインの科学』曰くでは…
? 5種類の化合物が関与する
? 酸類
? アルコール類
? 糖類
? ポリフェノール類
? 揮発性化合物
? それぞれが関与するのは
? 酸味
? 他の味覚のブースト
? 甘味そして酸とのバランス
? 渋味と色味
? 香り
2015/10/17 21
例えば、データを見る限りでは…
2015/10/17 22
fixed.acidity … residual.sugar … pH sulphates alcohol quality
11.6 … 2.2 … 3.25 0.57 9 3
7.4 … 4.4 … 3.38 0.5 9 4
7.4 … 1.9 … 3.51 0.56 9.4 5
11.2 … 1.9 … 3.16 0.58 9.8 6
7.3 … 1.2 … 3.39 0.47 10 7
7.9 … 3.6 … 3.35 0.86 12.8 8
例えば、データを見る限りでは…
2015/10/17 23
fixed.acidity … residual.sugar … pH sulphates alcohol quality
11.6 … 2.2 … 3.25 0.57 9 3
7.4 … 4.4 … 3.38 0.5 9 4
7.4 … 1.9 … 3.51 0.56 9.4 5
11.2 … 1.9 … 3.16 0.58 9.8 6
7.3 … 1.2 … 3.39 0.47 10 7
7.9 … 3.6 … 3.35 0.86 12.8 8
何となく、アルコール度数が高いと
ワインの評価も高いような気がする
でも…
2015/10/17 24
fixed.acidity … residual.sugar … pH sulphates alcohol quality
11.6 … 2.2 … 3.25 0.57 9 3
7.4 … 4.4 … 3.38 0.5 9 4
7.4 … 1.9 … 3.51 0.56 9.4 5
11.2 … 1.9 … 3.16 0.58 9.8 6
7.3 … 1.2 … 3.39 0.47 10 7
7.9 … 3.6 … 3.35 0.86 12.8 8
でも…
2015/10/17 25
fixed.acidity … residual.sugar … pH sulphates alcohol quality
11.6 … 2.2 … 3.25 0.57 9 3
7.4 … 4.4 … 3.38 0.5 9 4
7.4 … 1.9 … 3.51 0.56 9.4 5
11.2 … 1.9 … 3.16 0.58 9.8 6
7.3 … 1.2 … 3.39 0.47 10 7
7.9 … 3.6 … 3.35 0.86 12.8 8
酒石酸濃度とワインの評価とは
あまり関係ないような気がする
『新しいワインの科学』が掲げる問題意識
2015/10/17 26
ワインの風味を還元主義的
に研究しても全体のことは
分からない…
ひとつの物質だけを取り出
して個別の閾値を語っても
意味がない…
2015/10/17 27
「還元主義」の
限界?
2015/10/17 28
それって本当に
「還元主義」?
例えばpHは低いほど(=酸が強いほど)qualityが高くなる
2015/10/17 29
では、11項目全てで同じことをやってみたら?
2015/10/17 30
では、11項目全てで同じことをやってみたら?
2015/10/17 31
では、11項目全てで同じことをやってみたら?
2015/10/17 32
2015/10/17 33
それは
「還元主義」
ではなく
「単変量解析」
の問題では
2015/10/17 34
「単変量解析」
がダメなら…
2015/10/17 35
「多変量解析」
すればいいのでは
例えば線形モデル(+一般化線形モデル)では…
2015/10/17 36
86
目的変数
1
変数1
4
変数2
0
変数3
2
変数4
3
変数n
このβたちから
モデルは成っている
説明変数を立てて、多変量のデータセット
としてまとめておく
例えば線形モデル(+一般化線形モデル)では…
2015/10/17 37
+2
変数1
+4
変数2
0
変数3
-1
変数4
-2
変数n
このβたちから
モデルは成っている
βの値を最適化問題を解くことで求める
?その大小や符号から、それぞれの指標が
目的変数に貢献するか否かを判断する
UP
UP
Neutral
DOWN
DOWN
例えば機械学習では…そもそも機械学習とは?
2015/10/17 38
のような形で表される「分類関数の出力
と教師データとの食い違い」に当たる誤
差関数を繰り返し計算+教師データを読
み込んでいってできる限り小さくするこ
とで、未知のデータをできる限り正しく
分類するための方法論誤差関数
正則化項
例えば機械学習では…ランダムフォレストの特徴
2015/10/17 39
例えば機械学習では…xgboostの特徴
2015/10/17 40
線形モデルでも機械学習のやり方を取り入れることも…
2015/10/17 41
0
変数3
-1
変数4
このβたちから
モデルは成っている
Neutral
DOWN
誤差関数
正則化項
一定の制約をかけて最適化問題
を解くことで不要な説明変数を
カットオフすることもできる
基本的な発想は2つ
?統計学を用いてデータを「説明」する
?機械学習を用いてデータから「予測」する
2015/10/17 42
基本的な発想は2つ
?統計学を用いてデータを「説明」する
?重み付けβを用いてワイン11項目それぞれ
の重要度を明らかにする
?機械学習を用いてデータから「予測」する
?交差検証データに対してできるだけ正確に
qualityを予測できるモデルを作る
2015/10/17 43
“Wine Quality”のうち赤ワインのデータを用いる
?学習データ兼回帰モデル向けデータ
?1439銘柄
?予測向け交差検証データ
?160銘柄
2015/10/17 44
まずは「説明」する
?統計学を用いてデータを「説明」する
?重み付けβを用いてワイン11項目それぞれ
の重要度を明らかにする
?機械学習を用いてデータから「予測」する
?交差検証データに対してできるだけ正確に
qualityを予測できるモデルを作る
2015/10/17 45
L1正則化線形回帰モデルを用いる
2015/10/17 46
0
変数3
-1
変数4
このβたちから
モデルは成っている
Neutral
DOWN
誤差関数
正則化項
一定の制約をかけて最適化問題
を解くことで不要な説明変数を
カットオフする
L1正則化線形回帰モデルで「関連の強いβだけ」を求めてみた
? 必要なさそうなもの:酒石酸、クエン酸、密度
? 高いほど評価が高いもの:遊離SO2、硫化カリウム、アルコール度数
? 低いほど逆に評価が高いもの:酢酸、塩化ナトリウム、総SO2、pH
2015/10/17 47
(Intercept) 4.004019461
fixed.acidity .
volatile.acidity -1.111627305
citric.acid .
residual.sugar .
chlorides -1.457579579
free.sulfur.dioxide 0.002767012
total.sulfur.dioxide -0.002411623
density .
pH -0.320801622
sulphates 0.880891983
alcohol 0.277764683
おまけ:L1正則化線形回帰モデルで交差検証
Accuracy
(45+43+3)/160
= 0.56875
2015/10/17 48
予測
3 4 5 6 7 8
実
測
3 0 0 1 0 0 0
4 0 0 3 2 0 0
5 0 0 45 23 0 0
6 0 0 18 43 3 0
7 0 0 1 16 3 0
8 0 0 0 2 0 0
次に「予測」してみる
?統計学を用いてデータを「説明」する
?重み付けβを用いてワイン11項目それぞれ
の重要度を明らかにする
?機械学習を用いてデータから「予測」する
?交差検証データに対してできるだけ正確に
qualityを予測できるモデルを作る
2015/10/17 49
ランダムフォレストの場合
2015/10/17 50
予測
3 4 5 6 7 8
実
測
3 0 0 1 0 0 0
4 0 0 4 1 0 0
5 0 0 57 11 0 0
6 0 0 12 49 3 0
7 0 0 1 6 13 0
8 0 0 0 0 2 0
Accuracy
0.74375
おまけ:ランダムフォレストでは変数重要度の絶対値を出せる
2015/10/17 51
MeanDecreaseGini
fixed.acidity 71.37408
volatile.acidity 97.01327
citric.acid 71.95186
residual.sugar 67.73691
chlorides 75.90818
free.sulfur.dioxide 62.9217
total.sulfur.dioxide 94.24227
density 88.93049
pH 72.71654
sulphates 98.83825
alcohol 122.04312
xgboostの場合
2015/10/17 52
予測
3 4 5 6 7 8
実
測
3 0 0 1 0 0 0
4 0 0 4 1 0 0
5 0 0 57 11 0 0
6 0 2 13 46 3 0
7 0 0 1 5 13 1
8 0 0 0 0 2 0
Accuracy
0.725
「説明」と「予測」を組み合わせてまとめると…
? ワインの評価の高低には11項目中7項目の増減が重要らしい
? 非線形のランダムフォレスト分類器で比較的高精度に予測できそう
2015/10/17 53
(Intercept) 4.004019461
fixed.acidity .
volatile.acidity -1.111627305
citric.acid .
residual.sugar .
chlorides -1.457579579
free.sulfur.dioxide 0.002767012
total.sulfur.dioxide -0.002411623
density .
pH -0.320801622
sulphates 0.880891983
alcohol 0.277764683
予測
3 4 5 6 7 8
実
測
3 0 0 1 0 0 0
4 0 0 4 1 0 0
5 0 0 57 11 0 0
6 0 0 12 49 3 0
7 0 0 1 6 13 0
8 0 0 0 0 2 0
Accuracy 0.74375
とは言え、こういう反論もあり得る
2015/10/17 54
ワインの味わいを
データサイエンスで語るのは
もしかしたら…
ただの「野暮」なのでは?
けれども、私はこう考えます
2015/10/17 55
評論家でもまちまちな
ワインの「評価」を
データサイエンスで
「正規化」できれば…
我々のような素人でも
美味しいワインを手早く
見出せるようになるのでは?
結論
2015/10/17 56
データサイエンスで
誰でも美味しいワインが
見つかる世の中になると
いいですね
結論
2015/10/17 57
データサイエンスで
誰でも美味しいワインが
見つかる世の中になると
いいですね
※こういうことを言っているとそのうち
「『ワインのデータサイエンス』とかいう本を
書きませんか」とかいう謎の誘いが来たりして
非常につらいのでこれ以上はやめておきます

More Related Content

Taste of Wine vs. Data Science