4-8

データ活⽤実践（教師あり学習）東京⼤学 数理・情報教育研究センター
2020年5⽉11⽇

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA

概要• 機械学習，特に教師あり学習の種々のデータ分析⼿法（分類・回帰）と，それらを⽤いた⼀連のデータ分析プロセスを実⾏するための知識を学びます．
• データ解析例を通じてデータの前処理から分析までどのように実⾏されるかを体験します．

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA

2

本教材の⽬次
1. 機械学習4

2. 教師あり学習
2.1. データの収集と前処理
2.2. 回帰・分類
3. モデル

78
1011

4. 経験損失最⼩化
5. 評価⽅法
6. 過学習と正則化，交差検証

15
1719

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA

3

機械学習
Arthur Samuel「Field of study that gives computers the ability to learn without
being explicitly programmed 」 (1959)
明⽰的なプログラムなしにコンピュータに学習能⼒を与える研究分野．

画像の被写体が⾞である事をコンピュータに判断させるようなルールを明⽰的にプログラムすることは⾮常に困難です．
▶ 代わりに機械学習では蓄積されたデータからルールを発⾒する学習⽅法⾃体をプログラムします．

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA4

機械学習• データに潜むルール（パターン）を⾃動的に⾒つけます．
• ⼈がプログラムするのは認識の仕⽅ではなく学習⽅法です．
画像データ（訓練データ）

学習

汎化
未知画像も正しく認識出来るようなルールの発⾒．
（汎化性のあるルール）

機械学習でのルール発⾒に⽤いられるデータを訓練データと呼びます．
訓練データにない未知データに対しても正しく予測する事（汎化）が⽬的です．
機械学習には⼤まかに教師あり学習と教師なし学習があります※ 今回の講義では教師あり学習を取り扱います．

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA

5機械学習の流れ
1. ⾏いたいタスクの特定．
やりたい事は分類，回帰，クラスタリング等のうちどれかを特定します．

2. 分析に必要なデータの確認，対象となるデータの収集．
収集すべき教師値と予測に効きそうな特徴を検討します．

3. データの分析．機械学習による学習と評価．

データの前処理・加⼯と機械学習によるデータ分析を実⾏します．

4. データ分析結果の共有，課題解決に向けた提案．
データ分析結果のレポートを作成し，それを材料に次の施策を検討します．

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA

6

教師あり学習
訓練データは 𝑥, 𝑦 = (データの特徴，教師値)というペアの集まりです．
教師値はデータのラベルであり回帰では連続値，分類では離散値です．
教師あり学習による予測：
訓練データから 𝑥 から 𝑦 を正しく予測するルールの発⾒を⽬指します．
例えば画像認識では 𝑥, 𝑦 = (画像データ，被写体名)

𝑥=

教師あり学習による予測

𝑦 = ⾞（正しい予測）

その他の教師あり学習の例：
売上予測 → 店舗の売上⾼と店舗・地理・気候等のデータで学習する．
罹患予測 → 診断結果と体温等の受診者のデータで学習する．
成約予測 → 成約結果と商品情報・顧客情報のデータで学習する．
離反予測 → 離反情報とユーザーのサービス利⽤状況データで学習する．
東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA

7

データの収集予測対象と関連する簡単な説明変数（特徴）の作成をし，データを収集します．
- アヤメの品種予測

特徴ベクトル𝑥

教師値𝑦

教師値：アヤメの品種
Setosa, Virginica, Versicolor
特徴：sepal.length（がく⽚の⻑さ）
sepal.width（がく⽚の幅）
petal.length（花びらの⻑さ）
petal.width（花びらの幅）

１⾏が１データ

教師値・特徴ベクトルは連続値・カテゴリ値（離散値）として収集します．
特徴ベクトルの設計には対象データの専⾨知識を有効活⽤しましょう．
データの設計・収集がうまくいけば，あとは汎⽤の機械学習で分析可能です．
訓練データが多いほど予測精度は向上します，出来るだけ収集しましょう．

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA

8データの加⼯・前処理
機械学習を精度良く正しく実⾏するにはデータの前処理・加⼯が必要です．
タイタニックの⽣存結果データ（教師値：Survived）

データクレンジング• 外れ値検出・除去• ⽋損値除去・補完
カテゴリ値の数値への変換• ダミー変数の追加
例：Male, Female列を追加し0-1値に変換．

カテゴリ変数 ⽋損値

有効な前処理• 標準化：列を平均0，分散1に変換．
• 正規化：列を 0,1 , [−1,1]に収める．列or⾏の平均を0にノルムを1に変換．
• 変数変換• サンプリング：訓練データの⼀部を無作為に選び新たに訓練データとします．
訓練データサイズの調整やアンサンブル学習の際に⽤います．
東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA9

回帰と分類
教師あり学習はデータに割り当てられるラベル 𝑦 が連続値・離散値（識別⼦，名称，カテゴリ値等）かに依って回帰・分類に分けられます．
回帰の例• 売上予測：𝑦 = 店舗の売上⾼，𝑥 = 店舗・地理・気象・曜⽇情報• 価格予測：𝑦 = 住宅価格，𝑥最寄駅の距離，築年数，間取り，設備，地理情報
分類の例• 罹患予測 ： 𝑦 = 診断結果，𝑥 = 受診者のレントゲン・⾎液検査・体温• 成約予測 ： 𝑦 = 商品の成約結果，𝑥 = 商品，顧客の収⼊・職種・家族構成• 離反予測 ： 𝑦 = 離反状況，𝑥 = ユーザーのサービス利⽤頻度・活動内容
𝑛 個の訓練データ 𝑥! , 𝑦! , … , 𝑥" , 𝑦" から写像・関数 𝑦 = 𝑓(𝑥)を学習します．
𝑓 には様々なモデルがあり，モデルの選択が精度の担保に⾮常に重要です．
（参考）写像・関数とは？
⼊⼒𝑥を出⼒𝑦に対応付ける関係𝑓を⼀般に写像といい𝑦 = 𝑓(𝑥)と呼びます．
特に出⼒が実数値を取る対応関係は関数と呼びます．
東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA10

モデル• 関数・写像は⼊⼒𝑥と出⼒𝑦の関係を記述する：
𝑦=𝑓 𝑥 .
関数の例：近隣⼈⼝𝑥に対し売上⾼𝑦の増加は線形：
𝑦 = 𝑥 + 1.

𝑦𝑦 =𝑥+11𝑥• ⼀般には正しい係数は不明なので以下の関係を想定する：
𝑦 = 𝑤! 𝑥 + 𝑤" .
係数𝑤# , 𝑤! をパラメータと呼び，パラメータを持つ関数・写像をモデルと呼びます．
パラメータの値によってこの関数・写像の対応関係が変化しますが機械学習では訓練データ 𝑥! , 𝑦! , … , 𝑥" , 𝑦" に適合するようにパラメータを決定します．
（参考）この適合度は損失関数で計算されます．データ分析⼿法に応じて対応する損失関数が存在します．

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA

11

種々のモデル
様々なモデルがあるのでデータに合わせ適切なものを選択します．
深層ニューラルネットも複雑なモデルの⼀つです．
モデルの例（⾚字がパラメータ）• 𝑓$ (𝑥) = 𝑤# + 𝑤! 𝑥! + 𝑤% 𝑥% + ⋯ + 𝑤& 𝑥&• 𝑓$ (𝑥) = 𝑤# + 𝑤! cos(2𝜋𝑥) + 𝑤% cos(4𝜋𝑥) + 𝑤% cos 8𝜋𝑥%
• 𝑓$ (𝑥) = 𝑤# + ∑)'(! 𝑤' exp − 𝑥 − 𝜇'

全パラメータをまとめて𝑤 と書きます．最初の例では𝑤 = 𝑤# , … , 𝑤& です．
⼀般にパラメータ𝑤を持つモデルを𝑓$ と書くことにします．
（参考）Σとは？共通の添字を持つ複数の数式の和を意味する記号です．
三番⽬の例では 𝑤' exp − 𝑥 − 𝜇' % が添字𝑖を持つ数式で，これを𝑖 = 1から𝑖 = 𝑀まで⾜し上げています：% = 𝑤 exp − 𝑥 − 𝜇 % + ⋯ + 𝑤 exp − 𝑥 − 𝜇% .
∑)!
!
))'(! 𝑤' exp − 𝑥 − 𝜇'東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA

12回帰
特徴ベクトル𝑥から連続値のラベル 𝑦 を予測することを回帰と呼びます．
予測はパラメータ𝑤を持ち実数値に値を取るモデル𝑓$ により⾏います．
価格予測の例𝑦 = 住宅価格，𝑥 = 最寄駅の距離，築年数，間取り，設備，地理情報
𝑦𝑦

線形モデル

𝑥

⾮線形モデル𝑥

データの特徴が⼀変数の時は単回帰分析，多変数の時は重回帰分析と呼びます．
東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA

13

分類
特徴ベクトル𝑥から識別⼦・カテゴリ等の離散値のラベル 𝑦 を予測することを分類と呼びます．予測はパラメータ𝑤を持ち実数値（⼜は実数値ベクトル）に値を取るモデル𝑓$ の出⼒を離散値に丸めて⾏います．
例えば診断結果等のラベルが1あるいは−1の⼆値で表されている時， 𝑓$ (𝑥)が0 以上であれば 1を割り当て，0 未満であれば −1を割り当てます．
罹患予測の例𝑦 = 診断結果，𝑥 = 受診者のレントゲン・⾎液・体温𝑥%

𝑥%

線形モデル

𝑥!

⾮線形モデル

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA𝑥!
14

損失関数
パラメータ𝑤を持つモデル𝑓$ とデータ 𝑥, 𝑦 の適合度合いは損失関数で定めます．
損失関数には様々な種類があり，それぞれ特有の性質を持ちます．
損失関数の例（モデル𝑓$ は実数値に値と取るものとします．）• ⼆乗損失関数

𝑙 𝑓$ 𝑥 , 𝑦 = 0.5 𝑦 − 𝑓$ (𝑥) % .

𝑦と予測値𝑓$ (𝑥)が近い時に損失が⼩さく，主に回帰分析で⽤います．
• ロジスティック損失

𝑙 𝑓$ 𝑥 , 𝑦 = log 1 − exp −𝑦𝑓$ 𝑥.

𝑦と𝑓$ 𝑥 の符号が同じで𝑦𝑓$ 𝑥 の値が⼤きい程，損失は⼩さくなります．
ロジスティック損失を⽤いた分類分析をロジスティック回帰分析といいます．

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA

15

経験損失最⼩化問題
機械学習では訓練データに平均的によく適合するパラメータを求めます．
これは次の経験損失最⼩化問題を解くことに帰着します:,1
min & 𝑙(𝑓& 𝑥) , 𝑦) ) .
&∈( 𝑛)*+（訓練データの損失関数値の平均）（参考）最⼩値記号とは？関数がパラメータを持つとき，パラメータが取り得る範囲での関数の最⼩値をmin記号で記述します．便宜的にこの最⼩値を求める問題⾃体を表す事もあります．今回の場合は損失関数値の平均を集合Ωで動くパラメータ𝑤について最⼩化する問題を表しています．

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA

16

モデルの評価（回帰）正解値 𝑦' "'(! ，予測値 𝑦J' "'(!
• ⼆乗平均平⽅根誤差（Root mean squared error, RMSE）
RMSE ="
1O
𝑦' − 𝑦J' % .
𝑛'(!

• 平均絶対誤差（Mean absolute error, MAE）
"1MAE = O
𝑦' − 𝑦J' .
𝑛'(!
⼤きく外すデータがあると相対的にRMSEは⼤きくMAEは⼩さくなります．
!

• 決定係数（ 𝑅 % ）：𝑦R = ∑"'(! 𝑦' ,""%∑
𝑦−𝑦J'''(!
𝑅% = 1 − ".
∑'(! 𝑦' − 𝑦R %平均値𝑦での予測との相対評価に他なりません．
R%% < 0は平均
𝑅 = 1 は完全な予測， 𝑅 % = 0 は平均値 𝑦による予測と同等，𝑅R
値 𝑦R による予測より劣ることを意味します．
東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA17

モデルの評価（分類）
様々な指標があり⽬的に応じて使い分けます．
分類精度の他にクラス毎の評価値があります．
あるクラスCの予測予測クラスがC

正負正TPFP負FN

TN

適合率（precision）
再現率（recall）
F-値

正解クラスがC

このような分類結果の表を混同⾏列と呼びます．
TP, FP, FN, TNはそれぞれのケースに該当するデータ件数です．

*+*+,-+*+*+,-.
%⋅012344⋅501267689
012344,501267689• データのクラスバランスに偏りがある時，分類精度の意義は低くなります．
• 適合率・再現率のトレードオフは次の通りです．
確かに正なものだけ正と予測 → 適合率：↗，再現率：↘
少しでも正なものを正と予測 → 適合率：↘，再現率：↗
• F-値は両者の調和平均に他なりません．
東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA

18

過学習と正則化𝑦

訓練データに対しモデルが複雑な場合，
橙：過学習
⿊：適合：訓練データ

訓練データには適合しても未知データに適合しない過学習という現象が起き得ます．

𝑥回帰問題での過学習の様⼦．

得られる関数の複雑さを抑制することで過学習を防ぐ技法を正則化と呼びます．
代表的な正則化⼿法として正則化付き経験損失最⼩化があります．
これは経験損失最⼩化問題に正則化項𝜆𝑅(𝑤)を加えた最⼩化問題です："
1min O 𝑙(𝑓$ 𝑥' , 𝑦' ) + 𝜆𝑅(𝑤) .
$∈ℝ! 𝑛'(!

𝑤 ∈ ℝ! はパラメータ𝑤が要素数𝑝の任意のベクトル値を取れることを意味します．

正則化項の例：&
𝐿% 正則化 𝑅 𝑤 = 𝑤 %% = ∑<(! 𝑤<% ,&𝐿! 正則化 𝑅 𝑤 = 𝑤 ! = ∑<(! 𝑤< .

リッジ回帰 = ⼆乗損失＋ 𝐿! 正則化
LASSO回帰 = ⼆乗損失＋ 𝐿" 正則化

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA

19

交差検証
正則化係数𝜆の⼤きさで訓練データへの適合度合いは変わります．
⼀般に𝜆が⼩さいと過学習， 𝜆が⼤きいと訓練データにも適合しない未学習の状態になります．
交差検証は丁度良い適切な𝜆を選ぶ⼿法です．
k-交差検証（Cross Validation, CV）
１．データを𝑘個に分割します．
２．分割したデータの⼀つを検証⽤とし，残りのデータで学習します．
３．検証⽤データでの予測誤差を計算します．
４．⼿順２，３を𝑘個の検証⽤データの取り⽅について繰り返します．
５． 𝑘個の予測誤差の平均を計算します．
ステップ5で計算される予測誤差平均をCVスコアと呼びます．
CVスコアは汎化誤差（未知データに対する誤差）の推定値であり，これを最⼩にする𝜆は過学習・未学習を起こさない丁度良い値であると期待されます．
東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA

20

交差検証

5-交差検証の実⾏イメージ
K=1

K=2

K=3

K=4

K=5

K=2, 3, 4, 5 で訓練
K=1での検証スコア

K=1K=2

K=3

K=4

K=5

K=1, 3, 4, 5 で訓練
K=2での検証スコア

K=1

K=2

K=3

K=4

K=5

K=1, 2, 4, 5 で訓練
K=3での検証スコア

K=1

K=2

K=3

K=4

K=5

K=1, 2, 3, 5 で訓練
K=4での検証スコア

K=1

K=2

K=3

K=4

K=5

K=1, 2, 3, 4 で訓練
K=5での検証スコア

訓練⽤データ

検証⽤データCVスコア＝検証スコアの平均

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA

21

交差検証の実⾏例
リッジ回帰，LASSO回帰で交差検証を実⾏した例です．
LASSO回帰

リッジ回帰

最適最適

正則化係数（lambda）に対しRMSEのCVスコア（⻘）とテストスコア（橙）をプロットしています．

いずれもCVスコアとテストスコアが共通の傾向を⽰していて，CVスコアをもとに正則化係数を決定すれば良いテスト精度が達成されることが分かります．
東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2020 CC BY-NC-SA22