第3章

機械学習（教師あり学習）
教師あり学習にはどのような手法があって、どんな課題解決に役立てられているのでしょうか。この章では、実践例とともに、手法の種類とそのアルゴリズムについて学んでいきます。

教師あり学習の基本的な手法と実践例を理解する- 37 -

教師あり学習とは
教師あり学習とは、既知となった過去の入力データと出力データを機械学習アルゴリズムにあらかじめ与える
ことで、それらを「正解データ」として計算する機械学習の手法です。
例えば、大量の動物の画像データが存在した時に、「これは“ネコ”」「これは“イヌ”」・・・といったようにあらかじめラベリングをしておきます。十分な正解データを用意し、それらを教師（正解）として機械学習を行います。未学習の画像を読み込ませた場合にも、正解の中から一致するデータを見つけ出し、“ネコ”か“イヌ”を判定することができます。

＜身近な「教師あり学習」の活用例＞
私たちの身近の以下のような場面で、教師あり学習は活用することが可能です。

・受信した電子メールがスパム（迷惑メール）かどうかを自動判定する
・新築の住宅販売価格を、過去の実績に基づいて予測する
・選挙において、ある候補者についての投票率を予測する
・住宅ローン申込者への融資リスクの高低を判断する

教師あり学習は、あらかじめ定めた分類に学習データに振り分けるための「分類」と、連続するデータの将来の値を予測する「回帰」の 2 つのタスクに分かれます。

- 38 -

１． 分類分類の主な目的は、分析したいデータが所属するクラス分けを予測することです。特に、YES or NO のように予測対象のクラス数が 2 つの場合、二値分類と呼ばれます。

＜例＞
化粧品ブランド A で新商品を発売することになりました。顧客向けに新商品の案内を行う時に、過去の購買履歴データを使って、なるべく新商品を買ってくれそうな人を予測して、その人たちのみに DM を送付します。

- 39 -

2．回帰

回帰の主な目的は、連続する値の傾向をもとに予測を行うことです。
具体的な活用例では、企業が商品やサービスの広告費用の増額を検討する際に、「広告費を増やすことでどのくらいの売上を見込めるか？」などの予測する際に使われます。

回帰分析は、結果となる数値と要因となる数値の関係を調べ、それぞれの関係を明らかにする統計的手法です。 このとき、要因となる数値を「説明変数」、結果となる数値を「目的変数」といい、「説明変数」が 1 つの場合を「単回帰分析」、複数の場合を「重回帰分析」といいます。

事例：重回帰分析を活用して、飲食店の売上予測を行う
飲食店業界などでは、将来的な店舗の売上がどのくらいになるかをあらかじめ予測するために重回帰分析をベースとした機械学習の手法を用いられることが多いです。店舗の来客数やオーダーされた商品の履歴など、様々なデータを活用して売上予測金額を算出します。
では実際に、このような売上予測（需要予測ともいいます）ではどのようなデータを用いることができるのかを考えてみましょう。
売上に影響を与える変数にはどのようなものがあるでしょうか。このとき、求めたい値は「売上金額」でこれが「目的変数」となります。この目的変数は、他のどのデータで決まるのでしょうか？ もし仮に、曜日、近隣でのイベント開催有無、店舗からのチラシ配布、天気などが影響していたら、それらを「説明変数」として予測することになります。

- 40 -

- 41 -

予測モデルおよび予測結果の評価（教師データと評価データに分割して検証する交差検証法）
教師あり学習では、収集したデータを教師データ（学習データ）と評価データの 2 つに分けて学習を行います。このようにデータを分割して評価することを「交差検証法（クロスバリデーション）」と呼びます。
教師あり学習は、人間が付けた正解のラベルに基づいて機械が学習を行った後に別のデータでの予測を行うモデルを構築するものですが、「正解のラベル」を付けてモデルを作成する工程を教師データで行い、予測は評
価データを用いて行われます。「予測した結果がどのくらい合っているのか」が、モデルの精度となります。教師
データ全てを用いてモデルの構築を行うと、そのデータには適合することができても、その後入ってくる未知のデータには全く合わないモデルが形成されてしまうことがあります。これを過学習（オーバーフィッティング）といいます。この過学習を防ぐために、手元にあるデータを教師データと評価データに分割してモデルの構築と予測を行います。
どの教師あり学習の手法にも評価方法があり、その値に基づいてモデルの評価が行われます。例えば分類を目的とした教師あり学習では、教師データで作成した予測モデルで評価データの分類を行ったときに何件中何件当たっていたのかが評価の対象になりますし、回帰を目的とした教師あり学習では、教師データで作成したモデルで評価データの回帰を行ったときに、教師データの予測値と評価データの実測値の差分がどのくらいなのかが評価の対象になります。出力された分類の正答率や回帰の値など予測結果の評価値を見て、そのモデルが実際の業務に使用できそうなモデルかどうかを検討し、使うことが難しそうであれば再度モデルを作り直す、といったトライアンドエラーの繰り返しによりモデルは作られていきます。
教師データと評価データにデータを分けて機械学習のモデルの評価を行う、そのために交差検証法は忘れずに行う必要があります。交差検証法の代表的な手法として「ホールドアウト法」と「ｋ分割法」があります。
次項ではこれらの手法を詳しく見ていきます。

- 42 -

交差検証の方法：Ｋ分割法
K 分割法は、学習データをいくつか（ｋ個）に分割してモデル構築と検証を分割したデータの回数分（ｋ回）繰り返す交差検証方法です。分割したデータ群のうちの 1 つを検証用とし、残りのデータでモデル構築を行います。
1 つを検証用として、残りのデータで構築したモデルの当てはまり具合を見て 1 回目の結果を確認し、2 回目は別のデータを検証用として、残りのデータでモデル構築を行い・・・というように、分割したデータの個数分だけモデル構築と検証を行い、複数回（ｋ回）繰り返し実施した検証の平均値を結果とします。これは異なるデータを検証用として複数回（ｋ回）試行することにより、特定のデータのみに適合したモデルになってしまうことを防ぎます。

- 43 -

データ分割方法：ホールドアウト法
ホールドアウト法とはモデルの精度を確認するための手法の一つで、１つのデータセットを教師データと評価
データに分けて行います。モデルの精度に影響を及ぼしてしまうため教師データと評価データは必ず分けて実施する必要があります。ホールドアウト法では、教師データに使用したデータは評価データとして使うことはありません。逆に評価データとして使用したデータを教師データに用いることもありません。ホールドアウト法を用いる場合には、データが混同しないように注意することが必要です。

- 44 -

教師あり学習の手法と活用例「教師あり」の学習手法において、実際にどのような手法があるのでしょうか。
それぞれの手法について、具体的な活用例もあわせて紹介します

線形回帰分析
線形回帰とは、回帰分析の一種で、ある目的変数の値を、別の説明変数の値に基づいて予測する手法のことです。予測したいデータ・値を目的変数、予測するために使用するデータのことを説明変数と言います。

Case

線形回帰を使って、人気ケーキショップの需要予測をしてみよう

美緒さんの両親は、市内に 10 店舗をもつケーキショップのオーナーです。美緒さんのおじいさん・おばあさんの代からはじめた小さなケーキショップでしたが、パティシエ修行をしていた美緒さんのお母さんがパリのコンクールで出会ったお父さんと結婚したことをきっかけにお店を継ぎ、この２０年間で市内に１０店舗あるお店にまで成長しました。
美緒さんもときどき本店でアルバイトとして、お客さんに商品について説明をしたり、レジで会計の手伝いをしています。
近所でとてもおいしいと評判のお店ですが、ここ半年ほどはケーキが売れ残ってしまうことが多くなっています。
とてもよく売れるので、「多めに作っておこう」とお母さんが言い始めたためです。
余りがたくさんでてしまっても、日持ちのしないケーキは翌日販売することができません。
「勿体ない」と思いながらも廃棄しなければならず、大好きなお店のケーキを捨てなくてはならないことに美緒さんはとても悲しく思ってました
美緒 「1 日どのくらいケーキが売れるのかわかればいいのに・・・」「そういえば、お店の公式 Instagram に写真をアップしたり、季節の果物をテーマにした新作のケーキを販売する
日は、お客さんが沢山来る気がする！」「バレンタインやホワイトデー、クリスマスは毎年とっても忙しいし。
毎日ケーキがどれだけ売れるかが事前に分かれば、余らせてケーキを捨てなくても済むんじゃないかな！」
美緒さんはふと、学校で習った機械学習の授業のことを思い出しました。
「そういえば、事前に商品がどのくらい売れるのかを分析する「需要予測」について習ったな。私にもできるかな・・・？」

単回帰分析
１つの目的変数を１つの説明変数で予測するものを「単回帰分析」といいます。その予測を行う２つのデータの関係性は𝑦 𝑎𝑥 𝑏という一次方程式の形で表せます。これは「回帰」で使われる最も基本的なモデルです。
単回帰分析 ： 𝑦𝑎𝑥𝑏

例：Instagram の投稿数からケーキの売上金額を予測する
目的変数：ケーキの売上金額
説明変数：Instagram の投稿数
- 45 -

重回帰分析
2 つ以上（２次元以上）の説明変数を持つものを「重回帰分析」といいます。適切な変数を複数選択することで、計算しやすく誤差の少ない予測式を立てることができます。

重回帰分析 ： 𝑦

𝑎1𝑥1

𝑎2𝑥2

𝑎3𝑥3

・・・・

𝑏0

例：ケーキの売上金額を Instagram の投稿数・チラシの配布枚数、イベントの実施内容から予測する
目的変数：ケーキの売上金額
説明変数：Instagram の投稿数、チラシの配布枚数、季節のフルーツを用いたケーキの発売日（説明変数が複数）回帰分析の意味『回帰』は教師あり機械学習の基礎の基礎です。回帰分析のうち、単回帰分析は 1 つの目的変数を 1 つの説
明変数で予測するもので、2 つのデータ間の関係性を𝑦 𝑎𝑥 𝑏という一次方程式の形で表します𝑎（傾き）と𝑏 （Y 切片）が判明すれば 𝑥 （Instagram の投稿数）から y（ケーキの売上金額）を予測することができます。
このように 1 次方程式で表されることから「線形」と呼びます。また、予測の精度は相関係数（決定係数）で表します。

- 46 -

回帰直線をどのように引くか
2 つのデータを散布図に配置した際、目的変数（ケーキの売上金額）に対して予測できる線、回帰直線はどのように引くのが良いのでしょうか。いろいろなパターンが考えられますが「予測」がどのように行えればよいかを考えてみましょう。Instagram の投稿数からケーキの売上金額を予測する数式が作れたとき、予測した値が大きく外れていては意味がありません。しかし、ピタリと当たるような「直線」を引くこともできません。そこで、この「直線」を使って予測を行なった際に、実際の値（実測値）と最も「誤差」が少なくなるように線を引くことを考えます。「予測した値と実測の誤差の二乗の和を最小にする」計算方法を用いて、回帰直線の傾きと切片を求めていきます。この方法を「最小二乗法」と言います。この「誤差を最小にする」考え方は、説明変数が増えた重回帰
分析でも全く同じです。

最小二乗法は、誤差の二乗の和を最小にするという意味で、直線から各値の長さを 1 辺とした正方形の面積の総和が最小になるような直線を探すことになります。

誤差の二乗の和＝𝑌𝛼𝑋𝑏

回帰係数はどのように求めるか
回帰分析は予測をすることが目的のひとつです。相関関係を𝑦𝑎𝑥 𝑏 の一次方程式で表せたとすると、定数の 𝑎 （直線の傾き）と 𝑏 （𝑦軸の切片）がわかっていれば、𝑥 （Instagram の投稿数）から𝑦 （ケーキの売上金額）を予測することができます。
傾きは以下の式で表されます。

- 47 -

傾きを求めることができれば、y 切片 b を求めることができます。回帰直線は、（𝑥 の平均， 𝑦 の平均）を通ることが分かっているので、以下の式からｂが求まります。

𝑏

𝑦の平均

傾き

𝑥の平均

③X の
平均との
差

④Y の平
均との差

例題で計算してみよう

店舗

X

Y

Instagram
の投稿数

1 年間の
ケーキの売
上金額（万
円）

西国分寺

5

240

大泉学園

10

750

経堂

3

110

東雲

6

240

江戸川橋

11

740

上大岡

7

210

代々木

15

580

池袋

20

300

吉祥寺

1

80

① X の平均② Y の平均

共分散：⑤の平均 ・・・ ⑥⑥X：平均との差の二乗の平均（X の分散）・・・⑦⑧直線の傾き ⑥÷⑦ ・・・⑧
⑨切片 ・・・ ② - ①×⑧ ・・・ ⑨- 48 -⑤[X の平均との差③]と[Y の平均との差④] の
積

⑥X：平均
との差の二
乗
（③の二
乗）

回帰式 ：⑧

x＋⑨

例題で機械学習を実行しよう（Python を用いた機械学習の実行）
ここからの例題では、日別の売上金額と様々な説明変数のデータセットを用いて回帰分析を実行します。

- 49 -

結果の解釈回帰式の係数と切片を算出することが出来ました。上記の例では、𝑦 2.059𝑥 101.7 という数式を用い、insta_good（Instagram のいいね！数）がわかれば、2.059 を掛けて 101.7 を加えると売上金額が予測できるということがわかりました。では、その予測はどのくらい実際の値と違っているのでしょうか？ それを把握- 50 -

するために、この例では「決定係数」を算出しています。

相関係数・決定係数とは
相関係数は、あるデータともう 1 つのデータ、2 つのデータの関係性を把握するための指標で、偏差の積和の平均（共分散）を X と Y の標準偏差で割ったものが相関係数です。相関係数は-1 から 1 までの値をとり、絶対値が 1 に近ければ近いほど 2 つのデータの関係性が高いとみなします。回帰分析の実行結果を評価する際には、まず「回帰式により求まった値」と「実際の値」の相関関係を確認します。また、決定係数は相関係数の二乗の値です。二乗することによりマイナスの符号もプラスの符号も関係なく評価ができるようになります。「回帰式により求まった値」と「実際の値」の相関係数・決定係数が 1 に近ければ近いほど、回帰式による予測が出来ていると考えることができます。

ロジスティック回帰とはロジスティック関数を用いた回帰モデルのことです。線形回帰モデルとの大きな違いは目的変数の種類にあります。線形回帰モデルは目的変数に実数値をとりますが、ロジスティックス回帰はカテゴリや比率をとります。つまり、あるサンプルにラベルを与えるような分類問題で用いられるのです。
分類の際はデータのプロット上に境界線を引くことを考えます。回帰によって各点にフィットする線ではなく、各点を分割する線を求めるということです。この手法で目的変数と説明変数をつなぐ関数として、ロジスティッ
ク関数を用います。この関数に分類対象のデータを入力すると、0 から 1 の値をとる確率を返します。
問題ごとに適切な閾値を定めて、その値と出力された確率の大小によってクラスの分類を行うのです。活用
例としては、たばこの本数と肺疾患の関係、クレジットカードの保有者情報と債務不履行の関係、という問題があげられます。このように二つの選択肢の答えを考える場面が実際の社会では多く、有用な手法です。

- 51 -

判別分析
判別分析は二つの母集団を設定し、あるサンプルがどちらの母集団に属するのかを推測するための手法です。母集団への所属があらかじめわかっているサンプルとその変数について判別方式を構成し、その方式を用いて所属不明なサンプルの属するクラス母集団を求めることができます。
判別方式としては、変数の値から各母集団への距離を定義し、対象のサンプルがその距離の最も小さい母集団へ属するという考えをとります。
そこで用いる距離はマハラノビスの距離と呼ばれ、各母集団における変数の確率分布が正規分布にしたがうとする前提と対応しています。
活用例としては、世論調査から選挙の当選者の予測、模擬試験結果からの合格予測、身元不明の骨から年齢や性別を予測、顧客の傾向から将来の発注予測などがあげられ、適用範囲の幅広さで知られています。

数量化理論（I 類、II 類）
数量化理論の「数量化」とは、数量でないデータ（質的データ）を数量として分析するという意味で命名されたもので、林知己夫によって開発された日本発の多変量解析手法です。
アンケートデータのクロス集計表を可視化するのに用いられるコレスポンデンス分析等の手法がそれにあたり、
コンピュータが現在ほど進化していない時代には画期的手法でした。この手法は現在でも広く活用されています。
数量化理論にはⅠ類から VI 類までありますが、よく用いられるのはⅠ類から IV 類までで、V 類や VI 類はほとんど使われていません。数量化 I 類と II 類が、機械学習において「教師あり学習」に分類されるのは、目的変数があるデータを分析するからであり、多変量解析においては予測の手法と要約の手法のうち、予測の手法
にあたります。

数量化Ⅰ類とは数量化 I 類は、データが性別や学年のようにグループに分かれている場合に、その性別や学年による性質が、どの程度「量」としてに違うかということを分析する手法です。数量化は、質的データを数量化して分析するため、性別や学年のように数値でないデータ（カテゴリデータと言われます）を説明変数として、量的変数である身長や体重がグループ毎にどう異なるかという事を知りたい時に使います。
より具体的に説明すると、ある人が高校 1 年生の女性だった場合に、その人の身長と体重を予測するモデルを作ることができます。重回帰分析が、身長（量的データ）から体重（量的データ）を予測するモデルを作るのに対して、数量化 I 類では、質的データから量的データを予測することができます。

数量化Ⅱ類とは数量化 I 類は、説明変数が質的、目的変数が量的であったのに対し、数量化 II 類は説明変数も目的変数も質的である場合に使います。
- 52 -

たとえば、商品を販売するための広告データなどを分析する際に、[商品の色][形][ブランド]などの特徴を表わす説明変数と、[ある商品を購入した／しない]、[広告をクリックした／しない]という目的変数のデータがあった時に、説明変数から目的変数を予測したり、説明変数と目的変数の関係を調べたり、分析結果を可視化したりすることができます。
数量化 I 類の分析アルゴリズムは、目的変数が量的変数である重回帰分析に対応し、数量化 II 類は判別分析
やロジスティック回帰分析に対応しています。
数量化理論においては、性別や年代などの質的変数をダミー変数という二値変数に変換して分析をしているので、目的変数をダミー変数に変換した重回帰分析等の多変量解析と同じ手法とみなすこともできます。

（結果）目的変数

原
因
（説
明
変
数）

質的変数

量的変数

質的変数

数量化Ⅰ類

数量化Ⅱ類

性別と果物の好き嫌いから
ケーキの消費量を予測
重回帰分析

量的変数

Instagram 投稿の「いいね！」数から、ケーキの販売額を予測

性別と果物の好き嫌いから、ケーキが好きかどうかを予測判別分析、ロジスティック回
帰分析
ケーキの消費量から性別を予測

表 1：変換前（数量化前）のデータ

性別
男性
女性
女性
男性
男性
女性
女性
男性
男性
男性
女性
女性

学年
高校 1 年生
高校 2 年生
高校 3 年生
高校 1 年生
高校 3 年生
高校 2 年生
高校 1 年生
高校 3 年生
高校 1 年生
高校 3 年生
高校 2 年生
高校 1 年生- 53 -

身長（ｃｍ）
177
162
165
169
172
158
162
171
169
169
172
158

体重(kg)
61
68
70
61
68
66
53
59
63
65
58
54

表２：変換後のデータ

女性
0
1
1
0
0
1
1
0
0
0
1
1

高校 1 年生
1
0
0
1
0
0
1
0
1
0
0
1

高校 2 年生
0
1
0
0
0
1
0
0
0
0
1
0

身長（ｃｍ）
177
162
165
169
172
158
162
171
169
169
172
158

体重(kg)
61
68
70
61
68
66
53
59
63
65
58
54

ここで、表２の表頭に男、高校３年生が抜けているのは、女性が 0 の場合は男性、高校１年生でも高校２年生
でもない場合は高校３年生ということが明らかなので、同じ意味のデータが含まれていると多重共線性といわれる相関の高いデータがあった時に計算上の不都合が起こる問題があるからです。

- 54 -

サポートベクターマシン（SVM）
２つのクラスのパターン識別を構成する手法です。訓練データから、「各データとの距離が最大となるマージン
最大化超平面を求める」という基準で線形入力素子のパラメータを学習させます。

Case

スマートフォンの故障は予測できる？

美緒さんは高校のお友達との間で、部活の合宿期間後から、スマートフォンが故障して困っているという話が増えています。あまりにいろんな人のスマートフォンが壊れるため、そのうち「スマホが壊れる人は呪われている」という噂までたち始めました。
美緒さんのお友達は怖がりで、とても気にしています。
そこで美緒さんは、「呪いなんかのはずがない。壊れるには原因があるはずだ」と考え、それをどうにか解明できないかを考えました。
「そういえば、ポケットにスマホを入れたまま合宿に参加して、落としている子がよくいたな。」
もしかしたら、機種によっても違いがあるかもしれない。」「つい最近壊れたと言っていたのは、中学からスマホを持っている子だったな。使用年数が長いと壊れやすくなるのかも。」
壊れる時期や壊れやすいスマートフォンを、あらかじめ知ることはできるのかな？
美緒さんはふと、学校で習った機械学習の授業のことを思い出しました。
「そういえば、対象を２つに分割する「サポートベクターマシン」について習ったな。
私にもできるかな・・・？」

サポートベクターマシン(SVM)が行うのは、「境界を識別する関数を求める」ということです。この「識別面」か
ら最も近い距離サンプルまでの距離（マージン）をとり、マージンを最大化する識別面を決定します。
そして、識別面に最も近いサンプルのことを「サポートベクトル」といい、それを用いて境界を決定します。SVM
は、次元（説明変数）が多くても対応でき、パラメータが少ないため使いやすいと言われています。このとき、距
離の計算方法には「ユークリッド距離（二点間の距離）」が使われるのが最も一般的です。ユークリッド距離は、二点間の距離のことで、ピタゴラスの定理で表すことができます。

- 55 -

𝑑 𝑥, 𝑦𝑥𝑦・・・＋ 𝑥𝑦

A さん（１,４）と B さん（５, ７）の距離を計算してみましょう。
8

B(5 , 7)
6

3
4

A(1 , 4)

4

2

0
0

2

4

6

8

A さんと B さんの距離は、三平方の定理を用いて 5 と求めることができます。サポートベクターマシンでは、
このようにして「距離」を図り、マージンを最大化できるところに境界線を引いています。

- 56 -

直線や平面でシンプルに分離できない・識別できないデータ（説明変数が多数で多次元のときなど）であっても、SVM はそのデータをその高次元空間上で線形に変換して捉える処理を行う「カーネルトリック」によって 、高い精度で識別する ことが可能です。

- 57 -

例題で計算してみよう
使用するデータセットID

使用 落とし月数 た回数

性別 年代

故障
歴の
有無

ヒビ
の有
無

機種
の幅

機種の
高さ

1

38

0

1

2

23

0

3

3

4

30

10

0

0

60

140

7

1

0

2

10

0

0

60

140

7

1

1

2

1

10

1

1

64

131

7

0

0

0

1

10

0

0

78

160

7

0

0

例題で機械学習を実行しよう（Python を用いた機械学習の実行）- 58 -

機種 カバ スマホリの厚 ーの ングのさ
有無 有無

- 59 -

- 60 -

モデルの評価
SVM による予測と、実際の結果（正解・教師）はどうだったでしょうか。結果が合っていたか、合っていなかったかは、下記の表（混同行列といいます）で表すことができます。

実際

SVM による予測

故障

故障しない

故障

【A】 10 正解【B】 ０ 不正解

故障しない【C】 １ 不正解

【D】80 正解

データサイエンティストが実際に予測を行った場合は、下記のそれぞれの指標で確認します。

- 61 -

決定木
決定木は機械学習の手法のひとつで、デシジョンツリー（decision tree）とも呼ばれます。
樹形図、ツリー構造型の図を作り出し、分類を行なうためのルールを作成する分析手法です。最終結果として分岐条件が提示されるため、分析結果を実務に適用し易い手法です。1963 年に Morgan ＆ Sonquest が提唱し、予測と分類に多く用いられています。

Case

常連顧客になる・ならないは何が違う？

決定木は、「予測」「分類」を多段階で実行する教師あり機械学習の手法です。目的変数がある探索的分析手法
で量的変数、質的変数どちらも扱えます。また、分岐過程を階層化し樹形図で表現するので視覚的にたいへんわ
かりやすい手法でもあり、非線形データにも対応可能です。

最近、美緒さんはアルバイトをしながら、ケーキショップの売上をもっと伸ばしていくためにはどうしたらいいか？ について考えるようになりました。
「新しいお客さんにお店のことを知ってもらうのも大切だけど、常連さんがもっと増えたらいいな」
お店には多くの顔なじみのお客さまがいます。昔から贔屓にしてくれる人もいて、イベントがあるときは必ず美緒さんのお店のケーキを購入してくれます。
「常連になってくれるお客さまとそうでないお客さまは、何が違うんだろう？」
ふと美緒さんは思いました。
しかし、アルバイトである美緒さんにはレジで接客したときに話すお客さまの情報しかありません。
もっと今の常連客のことを知る方法があれば・・・。
ふと、美緒さんはあるものを思い出しました。お店では会員に発行しているポイントカードです。
ポイントカードには、お客さんごとにこれまでの購入履歴の情報がシステムに記録されています。
しかし、これまではポイントカードの情報をお店で活用したことがありませんでした。
ポイントカードには、ほかにどんなデータがあるんだろう？
お店の売上をあげるためのヒントを見つけられないかな・・・？
そこで美緒さんは、ポイントカードのデータと POS データを活用し、常連客を増やすためのヒントを得られないかと考えました。
「そういえば、お会計の時にお客さまと話していると、結構遠くから買いに来てくれている方が多い気がする。」「季節の果物をテーマにした新作ケーキは、一見さんに多いかも！」「通年販売のケーキはアフタヌーンティーを楽しむマダムたちに人気な気がする」
考えれば考えるほど、常連客に必要な条件は複雑に思えてきます。これを知る方法はあるのでしょうか？
そこで美緒さんはふと、学校で習った機械学習の授業のことを思い出しました。
「そういえば、条件ごとに対象者を分類できる「決定木」について習ったな。
あの方法だったら、常連客の条件が見つけられるかも。私にもできるかな・・・？」- 62 -

樹形図（ツリー）によって分岐する条件が視覚化されることから「説明が求められる」場合の機械学習の手法としてビジネスのいろいろな場面で活用されています。決定木には分類木と回帰木の 2 種類があり、分類木は対象の分類を行いたい場合、回帰木は対象の連続する数値を予測したい場合に用いられます。
目的変数と説明変数を設定し、目的変数の特徴的なグループを観測データに見出していきます。複数の説明
変数による条件でデータを分割すると目的変数の特徴がはっきりしてきます。決定木とは、このように説明変数の条件で構成されたデータの分岐ルールを生成する手法です。
また、決定木ではその手法の特性から過学習しやすい傾向があります。

分類木 例：常連顧客になる/常連顧客にならない
回帰木 例：ケーキの販売額を決める要因はなにか？
データが下記のようなケースを考えてみましょう。
顧客番号

常連客である

購入金額

ポイントカードの所
持

A

あてはまる

多い

持っている

B

あてはまる

普通

持っていないC

あてはまらない

普通

持っている

D

あてはまる

多い

持っていないE

あてはまらない

少ない

持っていない- 63 -

このようなケースでは、決定木は下記のように分岐します。

決定木では、目的変数と説明変数の候補となるデータをそれぞれ集計して分類し、最も分類される方法を繰
り返し計算して見つけ、分岐する過程を目で見て捉えることができます。データのグループをノード、分岐が止まった一番末端にあるノードがリーフ、ノードとリーフを結ぶ線をエッジと呼びます。この分類を繰り返し計算する
アルゴリズムには様々なものがあります。CHAID、C&R Tree などがよく知られています。CHAID は𝑥 値
（カイ二乗値）と呼ばれる統計量が最も大きい順にデータを分割していきます。𝑥 値は、観測度数と期待度数のずれを表す数値で、𝑥 分布という統計の分布を利用して「めったに起こらないこと」が起きるかどうかを計算する値です。CHAID は𝑥 値が大きなものから分岐させていくアルゴリズムです。𝑥 値を例題で計算してみましょう。
常連客にあてはまるか、あてはまらないかと、購入金額が高い・普通・少ないでクロス集計を行います。

購入金額

少ない
普通
高い
合計

常連客
あてはまる
1.0
1.0
1.0
3.0

常連客
あてはまらない
0.0
0.0
2.0
2.0

合計
1.0
1.0
3.0
5.0

常連客に「あてはまる」と、常連客に「あてはまらない」の比は３：２です。もし、購入金額が常連客で同じ比率であったとしたら、すべて３：２で下記の表のようになるはずです。これを期待度数といいます。

購入金額

少ない
普通
高い
合計

常連客
あてはまる
0.6
0.6
1.8
3.0

- 64 -

常連客
あてはまらない
0.4
0.4
1.2
2.0

合計
1.0
1.0
3.0
5.0

次に、期待度数と実際の値がどのくらい違うのかを算出します。期待されていた値から、実際の値を引き算し
ます。

購入金額

少ない
普通
高い
合計

常連客
あてはまる
-0.4
-0.4
0.8
0.0

常連客
あてはまらない
0.4
0.4
-0.8
0.0

合計
0.0
0.0
0.0
0.0

符号がマイナスになっているものもあるので、比較しやすくするためにそれぞれの値を２乗します。

購入金額

少ない
普通
高い
合計

常連客
あてはまる
0.16
0.16
0.64
0.96

常連客
あてはまらない
0.16
0.16
0.64
0.96

合計
0.32
0.32
1.28
1.92

さらにその値を期待度数で割ります。カイ二乗分布に従うかどうかを計算するためです。

購入金額

常連客
あてはまる

常連客
あてはまらない

少ない
普通
高い

0.27
0.27
0.36

0.40
0.40
0.53

合計

0.89

1.33

合計
0.67
0.67
0.89
2.22
これが𝑥 値

一方、ポイントカードを持っている／持っていない の𝑥 値は計算すると 1.88 です。購入金額の分岐のほうが𝑥 値の値が大きいため、先に分岐する条件になることがわかります。

- 65 -

例題で機械学習を実行しよう（Python を用いた機械学習の実行）- 66 -

- 67 -

- 68 -

分析結果の解釈
予測の精度はどうなっているでしょうか。学習データでの精度が 0.95、テストデータでの精度が０．８８９です。テストデータのほうが少し低いですが、いずれも高い精度となっています。これを「よく予測できている」と判断するか「過学習になっている」と判断するかはデータの取得背景やアルゴリズムへの理解も必要です。詳しくは「過学習」についての説明を確認してください。
生成された決定木の分岐図を確認してみましょう。今回の分析結果では、常連であるか／どうかの分岐条件
としては、まずポイントカードの所持があるか否かで分岐していることが分かります。所持しているか・していな
いかのあとは累計購入金額や来店回数で分岐が起こっています。ここで、例として左下の一番下のリーフを見ると、「ポイントカードを持っていない」「累計購入金額 16395 円以下」「来店回数 17 回以下」の全てに当てはまるデータ群であり、ここに当てはまる顧客は 15 人中 11 人が常連だとわかります。

機械学習を組み合わせる：アンサンブル学習
アンサンブル学習とは機械学習において、ロジスティック回帰や SVM、決定木など複数の学習モデルを組み合わせてより強力なモデルを構築する方法です。
アンサンブル学習には主に「バギング」と「ブースティング」 の２つの手法に分けられます。
バギングとは、観測データからデータの一部をランダムサンプリング（ブートストラップ）し、複数の学習モデル
を並列的に学習させることをいいます。ブースティングとは、複数の学習モデルを直列的に学習させることをいいます。

ランダムフォレスト
ランダムフォレストは、アンサンブル学習のバギングを基にして多数の決定木を用いて分類、回帰、クラスタリ
ングを行う機械学習のアルゴリズムです。決定木は過学習しやすいという欠点を持っていますが、複数の決定木を用いることで克服することができます。シンプルでわかりやすく、精度も高いと言われる手法です。

- 69 -

ニューラルネット
ニューラルネットの「ニューラル（neural）」は、ニューロン（神経細胞）のという意味で、ニューラルネットは生物の脳神経のメカニズムを人工的にコンピュータのプログラムで再現した、機械学習の手法の一つです。よく耳にする深層学習（ディープラーニング）は、このニューラルネットをより複雑にしたものです。

Case

修学旅行の写真を自動で分類しよう

美緒さんの学年は、つい先日いろいろな国をテーマにしたテーマパークに修学旅行に行きました。
カメラマンさんが撮影してくれた写真データを、美緒さんをはじめとする 5 人の実行委員で
写真データを整理するために国ごとに分けることにしました。
しかし、あまりにも枚数が多く、手作業だと大変です。
そこで美緒さんは「何とか自動で分けられないかな」と考えるようになりました。
「何をヒントにしたら見分けられるだろう。イタリアぽいエリアとか、USA ぽいエリアとか、建物にも特徴があったし。むずかしそうだなあ。でも代表的な建物や風景なので、これらの国ごとの特徴を使って自動分類できるかも！」美緒さんはふと、学校で習った機械学習の授業のことを思い出しました。
「そういえば、文章とか写真を入力するとどうにか分類してくれる「ニューラルネットワーク」について 習ったな。
私にもできるかな・・・？」

ニューラルネットワークはなぜ画像を判定できる？
ニューラルネットワークが、犬か猫かをなぜ判定できるかということを簡単に説明したいと思います。
脳は多くのニューロンで構成されており、ニューロン同士が「シナプス」と呼ばれる接続部分でつながり、ネット
ワーク構造を作っています。脳ではニューロンが他の多数のニューロンから信号を受け取り、その量に応じて他のニューロンに信号を次々に伝達するというメカニズムで情報を処理しています。
人工ニューロンのニューラルネットは、複数のデータを受け取って計算した結果を出力する一種の「関数」だと考えられます。猫の写真のデータは、例えば 100 万画素の CCD カメラで撮影したものであれば、100 万個のデータがあり、色が赤と緑と青（RGB）の 3 色の値で定義されるとすれば、300 万個のデータで構成されていると考えられます。
- 70 -

100 万個の画素データの色情報と位置がわかっていれば、その写真を再現し印刷することができます。たくさんの猫の 300 万個の色データと、たくさんの犬の 300 万個のデータを入力して、猫か犬かをうまく判定できるかのあてはまりのいい関数を作ることが、まさに「教師あり機械学習」です。うまく判定できる関数が作れれば、新しい猫や犬の写真を入力しても、それが猫か犬かということが高い確率で判定できるわけです。もちろん確率的に算出されるので、キツネを入力しても猫と判定するかもしれませんし、タヌキを入力しても犬と判定するかもしれません。また新種の犬を入力した時に猫と判定する可能性もあるわけです。
ニューラルネットは図のような、多層パーセプトロンという構造がよく使われ、ここでは中間層が 2 層ですが、深層学習では 10 層以上あるようなより複雑なネットワークが用いられます。入力層は上記の例でいえば 300
万個のデータがあり、その数値になんらかの係数を掛け算して合計したデータが 1 層目の中間層のデータとなり、さらにそのデータになんらかの係数を掛け算して合計したものが 2 層目の中間層データとなります。そのデータから回答を導くわけですが、適当に選んだ係数では、もちろん正しい結論は導けないわけで、膨大な計算をし、どのような係数の組み合わせにすれば、最も正しく猫か犬かを判定できるかの最適値を導くことで、猫か犬かを判定することができる関数ができあがります。

例題で機械学習を実行しよう（Python を用いた機械学習の実行）
例題では、修学旅行の画像ではなく「どの国の画像なのか」という題材を用意しています。日本、イタリアなどを用意していますが分類名や画像を変更することで、様々な画像を自動で分類することができます。

- 71 -

- 72 -

- 73 -

- 74 -

- 75 -

リカレントネットワーク
リカレントネットワークは、ニューラルネットワークの一種です。前にモデルに取り入れた情報を、次の予測に使うことができる回帰（リカレント）構造を持つため、時系列データや、言語データといった連続性を持ったデータの予測に使われます。連続性を商品のレビューやコールセンターの音声データから、顧客の満足度を測る感情分
析も、こちらの手法が使われています。これは、単語の意味を、前後の文脈を考慮して予測することができるからです。

ディープラーニング
ディープラーニングは、ニューラルネットワークの中間層を増やしたものです。中間層を増やすことによって、より複雑な問題を解いたり、予測精度を上げたりすることができます。その一方、モデルが複雑すぎて、どのよ
うに予測が導かれたのか人間には理解できないため、ブラックボックスモデルと呼ばれることもあります。
2016 年に囲碁の世界チャンピオンを倒した、AlphaGo もこちらの手法を使って開発されました。
- 76 -

ナイーブベイズ法
ナイーブベイズ法は、ベイズの定理を用いてデータを分類する規則を見つける手法です。
古くから使われている手法であり、特に自然言語処理の分野で多く使われています。例えば、ニュース記事を政治・経済・スポーツなどのカテゴリに分けたり、電子メールを迷惑メールとそうでないものに分ける際に、ナイーブベイズ法は高い性能を発揮します。

Cas

記事を自動で分類してみよう

晴斗さんはスポーツニュースサイトの運営を行なっています。サイトでは、クラスメイトに協力してもらってサッカー・野球のどのような点が好きかを記事として書いてもらっています。
これまでは晴斗さんが自ら、記事を「野球」と「サッカー」のどちらかのカテゴリに分類していました。
しかし、これからはナイーブベイズ法を用いて、新しい記事に含まれる単語の種類から、その記事を自動的に分類する仕組みを作ることにしました。
そこで晴斗さんは、さっそく過去の記事とカテゴリを調べました。
まず、サイト全体の記事のうち、各カテゴリの記事の割合を計算すると、野球が 6 割、サッカーが 4 割でした。次に、サイト内の記事でよく使われる単語をリストアップし、各単語が記事に出現する割合をカテゴリ別に計算すると、次のようになりました。
ここでは問題を簡単にするため、単語の数を全部で 3 種類にしています。

単語

野球カテゴリサッカーカテゴリ

試合

0.6

0.5

シュート

0.1

0.6

ドーム

0.2

0.1

このとき、「試合、シュート」の 2 つの単語で構成された新しい記事が、「野球」もしくは「サッカー」のどちらのカテゴリに近いのか、ナイーブベイズ法を使って分類しましょう。
方針として、分類対象の単語の種類から、「野球」「サッカー」それぞれのカテゴリに分類される確率を求め、その確率が大きい方をその記事のカテゴリとします。

アルゴリズムと解法- 77 -

ナイーブベイズ法のアルゴリズムは「ベイズの定理」とそれに必要な「確率」で形成されています。以下、分類対象の記事を D、カテゴリを C_i と表します。i はカテゴリの種類を表し、C_1 を野球カテゴリ、C_2 をサッカーカテゴリとします。

このとき、ベイズの定理を使うと、以下の式が成り立ちます。

ここで、𝑃 𝐶 は𝐶 カテゴリが発生する確率であり、事前確率とよばれます。今回は、各カテゴリの事前確率は次の値になります。

左辺の𝑃 𝐶 |𝐷 が今回求めたい値です。記事𝐷が生成されたという条件の下で𝐶 カテゴリが発生する条件付き確率であることから、事後確率とよばれます。この事後確率を「野球」「サッカー」カテゴリそれぞれで求め、大きい方を記事𝐷のカテゴリとします。
𝑃 𝐷|𝐶 は𝐶 カテゴリにおいて記事𝐷が生成される確率です。
これは、データの特徴（今回は記事に出現する単語の種類）が、そのカテゴリに属する尤も（もっとも）らしさを表しているので尤度（ゆうど）と呼ばれます。この尤度を厳密に計算するのは難しく、ナイーブベイズ法では、記事の生成モデルにある仮定をおきます。それは、「𝐶 カテゴリにおいて、各単語は独立である」というものです。つまり、「ある単語の出現確率は、他の単語の出現確率の影響を受けない」とする仮定です。

本来は、サッカーの記事で「ゴール」という単語が含まれていれば、「シュート」「勝利」といった関連する単語もその記事に含まれていてもおかしくありません。すなわち、「ゴール」という単語の出現が、他の単語の出現確率に影響を与えていることになります。これは自然な考え方ですが、この考えが尤度の計算を複雑にするので、ナイーブベイズ法では各単語の出現確率は互いに影響を与えないと仮定します。
すると、今回の尤度は以下のように変形できます。

すると、各カテゴリの尤度は以下のようになります。

𝑃 𝐷 は記事𝐷が発生する確率ですが、今回は計算しません。なぜなら、各カテゴリの事後確率を求めなくても、その大小関係さえわかればクラス分類が可能だからです。
- 78 -

ベイズの定理の右辺を見ると、分母の𝑃 𝐷 はカテゴリ𝐶 を変えても変化しません。つまり、分子部分だけを計算すれば各カテゴリの事後確率を比較できるのです。
以上から、各カテゴリの事後確率の、分子部分は、となり、記事𝐷はサッカーカテゴリと分類されました。
ナイーブベイズ法を用いて記事のカテゴリ分類ができました。問題例では 2 つのカテゴリで分類しましたが、もちろんもっと多くのカテゴリや単語数でも同様に考えることが可能です。
尤度の箇所で説明した通り、ナイーブベイズ法では条件付き独立という仮定を置いています。ナイーブが「単純な」を意味する通り、この仮定を置くことにより計算がシンプルになりました。これはあくまで仮定であり、本来は独立ではありません。しかし、それでも高い性能を発揮することが多く、古典的な手法ながら現在でも使われています。

例題で機械学習を実行しよう（Python を用いた機械学習の実行）※例題のデータセットでは、ニュース記事ではなく、クラスメイトに「好きなスポーツ」について記述したテキストを用意しました。

- 79 -

ナイーブベイズは「分類」を行いますので結果は混同行列で確認すると良いでしょう。また、今回は文章を特徴量化する方法として提供している Python サンプルコードでは TF-IDF というライブラリを使用しています。文章（テキスト）は非構造化データであり、そのままでは表形式のデータではないため、表形式（行列）として扱える
よう変換が必要です。その変換を行い、さらに扱いやすくしているのが TF-IDF です。このライブラリが何を行っているかについても、調べてみると良いでしょう。

K 近傍法
K 近傍法は、分類に使われる手法の一つで、与えられた学習データと入力データとの距離を計算し、距離の近い順に探し出した K 個の学習データと、入力データとの多数決で得られた結果を、分類結果とする比較的シン
プルなアルゴリズムです。このアルゴリズムを利用し、予測したい入力データ X について、既に値が明らかになっている学習データの中から X と似ているデータを見つけ出し、そのデータの参考にすることで値を予測しま
す。

Case

アニメの好みが似ている人を探して、その人がおすすめしてくれるアニメを視聴してみよう。

翔真くんはアニメを見るのがとても好きです。
その中でも、とりわけ宇宙飛行士を夢見る小学生が主人公の宇宙×バトルのアニメ、心優しい宇宙人と人間が交流を深めていく宇宙×友情がテーマになっているものをよく観ます。
ただ、それらを扱ったアニメは数が少なく、全て観てしまいましたそこで翔真さんは、「扱うテーマは違っても、似たようなテイストのアニメがわかればいいのに」と考えるようになりました。
「そういえば、ジャンルごとにタグ付けされているアニメの評論サイトがあったな。」「感想を書いているユーザー別に、これまで見てきたアニメのタグのカウントや、今の一押しなんかも発表されていたな。」「宇宙、バトル、友情みたいなタグの総数が多い人は、僕とアニメの好みが似ているかも！
その人がおすすめしているアニメは、私も楽しめるかもしれない！」
翔真くんはふと、学校で習った授業のことを思い出しました。
「そういえば、似ている人」を特定して、似ていないところを探してみる、というのを習ったような・・・ 考えてみようかな？

- 80 -

ここでは「似ている人」を同じ好みのグループに所属しているとして考えてみましょう。

アニメのジャンルの視聴回数
宇宙

バトル

友情

魔法

所属グループ No

翔真くん

１０

１０

１０

０

1

美織さん

５

１

１０

20

2

雄大くん

１０

１１

１２

１

３

芹那さん

５

２０

２０

０

１

距離の近いデータ
K 近傍法では、似ているデータを見つけ出すために、SVM と同様にユークリッド距離を使うのが一般的です。データ間の距離（二点間の距離）は三平方の定理で計算することができます。いま、求めたいデータ X に一番近いデータは α となっています。

K=3 のとき- 81 -

K 近傍法の K は参考にする値をいくつにするかを示します。K の値については、二値分類の場合、K を奇数にすることで多数決の結果がどちらかに決まるようにすることができます。上記では K＝3 とし、似ているデー
タ α～γ の 3 つを点線で囲っています。X の値は 3 点のデータ α～γ の値の平均値をとります。しかし、この時 K の値を大きくしすぎないように注意が必要です。K を大きくしすぎると距離が近くないデータを参考にする可能性があり、そうなると予測の精度が落ちてしまいます。これを防ぐために、加重平均を利用する方法があります。

<<加重平均を用いた予測>>K 近傍法で、平均をとるということは、距離の近い 3 点をすべて同じくらい参考にするということです。しかし、現実的にはよく似ているものを 1 番参考にし、2 番目に似ているものをその次に参考にする・・・とした方がより良い結果を得ることができる可能性があります。
K の値が増えると参照する値が増えるということで、X からの距離も離れて行くことになる場合もあります。
離れすぎてしまうと、あまり似ていないので参考にする程度を考える必要が出てきます。
これを解決するために、単純に平均をとるのではなく、距離の近さを加味し重みづけをした平均「加重平均」
をとります。距離の近さを考慮しますので、距離が近い(値が小さい)方は大きな値に、また距離が遠い(値が大きい)方を小さな値にするような重みづけを行います。簡単な重みづけにするなら、重みを距離の逆数(1 を距離で割る)にすることで可能になります。

例題で機械学習を実行しよう（Python を用いた機械学習の実行）- 82 -

結果の解釈予測の精度が 0.97 と高い結果となりました。K の数を増やしていくと、下がっていくことがわかります。過学習を考慮するためには、K をいくつに設定すると良いでしょうか。K の値が少ないと、学習精度は高いですが
過学習とならないかが気になります。一方で、K の値を高く設定すると精度は下がります。精度を確認しながら、学習データと評価データの分割比を変更したり、K の値をチューニングしたり、説明変数の取捨選択を行って過学習を防ぐようチューニングしましょう。

- 83 -

アノテーション
データに正解ラベルを貼る「アノテーション」
アノテーションとは、テキストや画像、音声など様々な形式のデータに対して、データに意味を持たせるタグと呼ばれる情報を付与することです。
機械学習の教師あり学習においては、学習のもととなる正解データ（いわゆる「教師データ」）を高い精度で作ることがとても大切です。

身近なアノテーションの事例：迷惑メールの判定
身近なアノテーションの事例では、受信メールボックスにおける迷惑メールの自動振り分けが挙げられます。
受信の度に、メールを迷惑メールかそうでないかを振り分けているこの作業もアノテーションの一種です。

アノテーションの種類
アノテーションは、用途やデータ形式によって作業内容が異なります。代表的なものを 3 つ、以下に説明しま
す。
・テキスト
・画像
・音声

- 84 -

意味的（セマンティック）アノテーション
フリーテキストと呼ばれる文章などのテキストデータに対して、事前に定義した「人」「モノ」「企業名」といったカテゴリを割り当てる作業です。文章中の文や段落を、割り当てられたカテゴリ情報を使用して、トピック毎に振り分けることが可能となります。
ニュースサイトなどで「国際」「政治」「娯楽」「スポーツ」といったように分類されているのも、この方法を活用した事例のひとつです。

画像・映像アノテーション
画像情報に対するアノテーションでは、①写っているものを検出して関連する言葉のタグ(猫、植物など)をつける物体検出と、②画像の中で特定の範囲を指定してタグ付けをする領域抽出、③画像そのものに対してタグ付けを行う画像分類とがあります。

音声アノテーション
大量の音声データを書き起こしテキスト化するところからはじまります。
例えば、あるサービスのコールセンターでの顧客との会話のやりとりなどの録音データを使用して、「商品名」「メーカー名」「機種名」などの情報の抽出のほか、接続詞や感動詞など単語一つ一つに意味をタグ付けしていきます。

- 85 -

過学習と次元の呪い（及びその対処法）
機械学習を行う中で、過学習や次元の呪いとよばれる問題に出会うことがあります。過学習(あるいはovertraining, 過適合(overfitting)) とは学習データに対する適合は良くなる一方で、テストデータに対しての予測精度は落ちてしまうことを言います。次元の呪いとは、データの次元数が大きい場合、モデル作成に必要な計算量が増えて効率的に機械学習が行えなくなることを言います。

過学習とは例えば、ある大学を目指す生徒の集団に関して、勉強時間と日々の小テストの点数が軸にとってあるプロットを考えます。そのプロット上に、大学受験で合格したか否かで分離する線を引くとしましょう。勉強時間と小テス
トの点数がある一定以上の生徒たちとそれ以外の生徒たちで分類されることは予想できます。その分離条件を元にすると、次年の生徒たちに関して合否が予測できます。しかし、そのデータには勉強時間や小テストの点数が、一定以上であることを満たさなくとも合格する生徒が数人いるとしましょう。
勉強時間が少なく小テストの点数が低くても本番の問題と相性が良くて受かってしまう生徒などを想像してください。そのような数人に関しても完全に分離ができるように複雑な線を引いたところで、その線にはあまり意味がなさそうです。その分離線を用いて次年の生徒の合否を予測しても精度が低いことには納得がいくでしょう。

このように、ある学習データ(今年の大学受験合否と勉強時間、小テストの点数に関するデータ)に対してあまりにも厳密なモデル(分離の線)を考えると、かえって違うデータに対する予測(次年の生徒の合否)精度が落ちてしまうことを過学習といい、機械学習ではたびたび問題になります。それを防ぐためには、データへの当ては
まりの良さとモデルの簡潔さのバランスを取ることが良いとされています。統計解析においては、そのバランスを見るための様々な目安(情報量基準)が知られています。また、学習データに関して学習の制限を設ける正則化というような操作も有効だと知られています。

次元の呪いとは
ここで、冷蔵庫にあるものの中からおいしい料理を作ることを考えます。冷蔵庫に麻婆豆腐の素とお豆腐しか入っていない場合、考えられるレシピは麻婆豆腐か冷ややっこ、湯豆腐など頑張っても 3 品ほどでしょう。ただ、カレー粉と人参、ジャガイモ、玉ねぎ、お肉、糸こんにゃくなどが入っているとします。するとカレー、肉じゃが、豚汁、カレー炒め、ポトフ、ちょっと頑張って野菜のかき揚げなども考えられます。他に、名がなくともおいしい料理を作ることができそうです。このように「おいしい料理を作る」という目標に対して、冷蔵庫の中にあるものを組み合わせて対処する場合、何か材料が増えただけでそのバリエーションはぐっと増えます。ここで、最高においしい料理を作成して友人をもてなそう、と考えるとします。

- 86 -

そのメニューを考えるとき、材料が少ない場
合は材料ごとの組み合わせも少なく、満足い
くまで料理を作って食べ比べることができます。しかし、材料が多いと色々な組み合わせで料理を作り、味見をし、ということを繰り返すのには多大な時間と労力を要します。これはデータ解析にも当てはめることができます。
データ解析で売り上げを気温や湿度、客層などによってあらわすモデルを作るとします。
良いモデルを作るためには必要な変数を選択してそれぞれに重み付けなどを行い、売り上げをよく表現する必要があります。モデルを作成するために用いるデータに関して次元(変数の個数)があまりにも多いと、変数同士の組み合わせが指数関数的に増加してしまいます。その結果、恐ろしいほど計算量が増え、手持ちのデータだと十分な学習結果が得られないことがあります。
このようにデータの次元数が多すぎることによって機械学習の効率が落ちたり、満足のいく結果が得られないことを「次元の呪い」といいます。これを避けるには、複数の変数を一つの特徴量にまとめたり(特徴量作成)、
有効な特徴量の組み合わせを絞ったり(特徴量選択)することが有効だと言われています。

- 87 -