直感的な単変量モデルでは
予測できない「ワインの味」を
多変量モデルで予測する
尾崎 隆 (Takashi J. OZAKI, Ph. D.)
Twitter: @TJO_datasci
2015/12/27 1
2015/12/27 2
このスライドは…
2015/12/27 3
「Aという変数が大きいユーザーほど
CVするのでとにかくAが大きいユー
ザーにレコメンドしましょう」
レコメンドしたがCV伸びず
「BというカテゴリがXのユーザーほど
クリックするのでとにかくB = Xという
ユーザーに広告出しましょう」
広告出してもクリックされず
2015/12/27 4
というような経験のある人に
捧げます
2015/12/27 5
本日のお題
こんな本を最近読みました
2015/12/27 6
『新しいワインの科学』の内容
 第1部 ブドウ栽培の科学
 ブドウとはどんな植物か、テロワールの正体に迫る、土とブドウ 他
 第2部 ワイン醸造の科学
 酸素管理とワインの品質、全房発酵とマセラシオン・カルボニック、
風味を決めるオーク樽の秘密 他
 第3部 ワインと人体の科学
 ワイン・テイスティングと感覚の個人差、脳が風味を感じる仕組み、
唾液が鍵を握るワインの味 他
2015/12/27 7
『新しいワインの科学』の内容
 第1部 ブドウ栽培の科学
 ブドウとはどんな植物か、テロワールの正体に迫る、土とブドウ 他
 第2部 ワイン醸造の科学
 酸素管理とワインの品質、全房発酵とマセラシオン・カルボニック、
風味を決めるオーク樽の秘密 他
 第3部 ワインと人体の科学
 ワイン・テイスティングと感覚の個人差、脳が風味を感じる仕組み、
唾液が鍵を握るワインの味 他
2015/12/27 8
『新しいワインの科学』の内容
 第1部 ブドウ栽培の科学
 ブドウとはどんな植物か、テロワールの正体に迫る、土とブドウ 他
 第2部 ワイン醸造の科学
 酸素管理とワインの品質、全房発酵とマセラシオン・カルボニック、
風味を決めるオーク樽の秘密 他
 第3部 ワインと人体の科学
 ワイン・テイスティングと感覚の個人差、脳が風味を感じる仕組み、
唾液が鍵を握るワインの味 他
主観的な体験を科学する???
2015/12/27 9
そもそもワインの味ってどんなもの?
 基礎的な味覚
 酸味
 甘味
 渋味
 旨味
…
2015/12/27 10
そもそもワインの味ってどんなもの?
 ワインに固有の味覚表現
 「ミネラル感」
 「トースト感」
 「果実味」
 「スモーキー感」
…
2015/12/27 11
そもそもワインの味ってどんなもの?
 ワインの味の評価は、先に述べたような様々な味の「要素」
を総合して決められることが多い
2015/12/27 12
2015/12/27 13
それはどう見ても
主観的なものでしか
ないのでは?
2015/12/27 14
何か客観的な指標で
ワインの味の評価を
決めることは
できないのだろうか
2015/12/27 15
※ワインに含まれる有機化合物
• 糖類(甘味)
• アルコール類
• ポリフェノール類
• 非フラボノイド系ポリフェノール
• フラバン-3-オール
• フラボノイド
• アントシアニン
• タンニン
• 揮発性化合物
• 酢酸エチル
• エステル類
• アルデヒド類
• ケトン類
• 高級アルコール類
• ラクトン類
• 揮発酸類
• 揮発性フェノール類
• テルペン類
• メトキシピラジン類
• 揮発性硫黄化合物
2015/12/27 16
例えばデータサイエンス
のような方法論で客観的に
味の評価を決められれば…
2015/12/27 17
それができれば
有名でないワイン、
たまたま評論家の目に
留まらないワインでも、
味の評価を占える
※細かい話をするとワイン業界の販促に極めて有用
UC Irvine Machine Learning Repositoryという
オープンデータセットがあります
2015/12/27 18
その中に“Wine Quality”というデータセットがあります
2015/12/27 19
その中に“Wine Quality”というデータセットがあります
2015/12/27 20
“Wine Quality”の中身はこんな感じ
2015/12/27 21
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/12/27 22
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/12/27 23
『新しいワインの科学』曰くでは…
 5種類の化合物が関与する
 酸類
 アルコール類
 糖類
 ポリフェノール類
 揮発性化合物
 それぞれが関与するのは
 酸味
 他の味覚のブースト
 甘味そして酸とのバランス
 渋味と色味
 香り
2015/12/27 24
例えば、データを見る限りでは…
2015/12/27 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/12/27 26
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/12/27 27
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/12/27 28
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/12/27 29
ワインの風味を還元主義的
に研究しても全体のことは
分からない…
ひとつの物質だけを取り出
して個別の閾値を語っても
意味がない…
2015/12/27 30
「還元主義」の
限界?
2015/12/27 31
例えば経験的に言って…
• 酸の弱いワインはアルコール度数が高くても後
者がもたらすアドバンテージ以上に「粗い」と
いう印象になる
• 酸もアルコール度数も強いワインであっても、
糖度が低ければ酸っぱいだけの美味くないワイ
ンになる
• 酸も強くアルコール度数も糖度も高いワインと
いうのは、度を越せば失敗作の貴腐ワイン
2015/12/27 32
確かに単一の物質に
帰結を求めるのは
良くないかもしれない
例えばpHは低いほど(=酸が強いほど)qualityが高くなる
2015/12/27 33
2015/12/27 34
これは直感的に
分かりやすい
でも「pHの高低」ではワインの評価は殆ど予測できない
2015/12/27 35
予測
5 6
実
測
3 0 1
4 1 4
5 0 68
6 0 64
7 0 20
8 0 2
Accuracy
0.40…
では、11項目全てで同じことをやってみたら?
2015/12/27 36
では、11項目全てで同じことをやってみたら?
2015/12/27 37
では、11項目全てで同じことをやってみたら?
2015/12/27 38
2015/12/27 39
それは
「還元主義」
ではなく
「単変量解析」
の問題では
2015/12/27 40
「単変量解析」
がダメなら…
2015/12/27 41
「多変量解析」
すればいいのでは
例えば線形モデル(+一般化線形モデル)では…
2015/12/27 42
86
目的変数
1
変数1
4
変数2
0
変数3
2
変数4
3
変数n
このβたちから
モデルは成っている
説明変数を立てて、多変量のデータセット
としてまとめておく
例えば線形モデル(+一般化線形モデル)では…
2015/12/27 43
+2
変数1
+4
変数2
0
変数3
-1
変数4
-2
変数n
このβたちから
モデルは成っている
βの値を最適化問題を解くことで求める
その大小や符号から、それぞれの指標が
目的変数に貢献するか否かを判断する
UP
UP
Neutral
DOWN
DOWN
例えば機械学習では…そもそも機械学習とは?
2015/12/27 44
のような形で表される「分類関数の出力
と教師データとの食い違い」に当たる誤
差関数を繰り返し計算+教師データを読
み込んでいってできる限り小さくするこ
とで、未知のデータをできる限り正しく
分類するための方法論誤差関数
正則化項
例えば機械学習では…ランダムフォレストの特徴
2015/12/27 45
例えば機械学習では…xgboostの特徴
2015/12/27 46
線形モデルでも機械学習のやり方を取り入れることも…
2015/12/27 47
0
変数3
-1
変数4
このβたちから
モデルは成っている
Neutral
DOWN
誤差関数
正則化項
一定の制約をかけて最適化問題
を解くことで不要な説明変数を
カットオフすることもできる
基本的な発想は2つ
統計学を用いてデータを「説明」する
機械学習を用いてデータから「予測」する
2015/12/27 48
基本的な発想は2つ
統計学を用いてデータを「説明」する
重み付けβを用いてワイン11項目それぞれ
の重要度を明らかにする
機械学習を用いてデータから「予測」する
交差検証データに対してできるだけ正確に
qualityを予測できるモデルを作る
2015/12/27 49
“Wine Quality”のうち赤ワインのデータを用いる
学習データ兼回帰モデル向けデータ
1439銘柄
予測向け交差検証データ
160銘柄
2015/12/27 50
まずは「説明」する
統計学を用いてデータを「説明」する
重み付けβを用いてワイン11項目それぞれ
の重要度を明らかにする
機械学習を用いてデータから「予測」する
交差検証データに対してできるだけ正確に
qualityを予測できるモデルを作る
2015/12/27 51
L1正則化線形回帰モデルを用いる
2015/12/27 52
0
変数3
-1
変数4
このβたちから
モデルは成っている
Neutral
DOWN
誤差関数
正則化項
一定の制約をかけて最適化問題
を解くことで不要な説明変数を
カットオフする
L1正則化線形回帰モデルで「関連の強いβだけ」を求めてみた
 必要なさそうなもの:酒石酸、クエン酸、密度
 高いほど評価が高いもの:遊離SO2、硫化カリウム、アルコール度数
 低いほど逆に評価が高いもの:酢酸、塩化ナトリウム、総SO2、pH
2015/12/27 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
おまけ:L1正則化線形回帰モデルで交差検証
Accuracy
(45+43+3)/160
= 0.56875
2015/12/27 54
予測
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/12/27 55
ランダムフォレストの場合
2015/12/27 56
予測
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/12/27 57
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/12/27 58
予測
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/12/27 59
(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
さらにpartial dependence plotで分かること
2015/12/27 60
例えばアルコール、SO2、酢酸、pHの寄与度をみてみると、いずれもサチったり
急に凸凹したりして、味の評価に対して非線形に振る舞うことが分かる
さらにpartial dependence plotで分かること
2015/12/27 61
単一の指標でワインの評価を決めるのは危ない
今回のワインの事例から学べる教訓
2015/12/27 62
直感的に分かりやすい
A/Bテスト的な
「単変量モデル」より
直感的でなくても精度の
高い機械学習などの
「多変量モデル」を
もっと実践してみよう

直感的な単変量モデルでは予測できない「ワインの味」を多変量モデルで予測する