これらすべてが データサイエンス の対象 分析に意味のある データを選別 過去のデータ 過去のデータ 過去のデータ 5 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
予測/判断ルール データのモデル化 機械学習 分析に意味のある データを選別 過去のデータ 過去のデータ 過去のデータ データの準備 6 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
学習アルゴリズムの選定 予測/判断ルール データのモデル化 機械学習 分析理論の理解 分析に意味のある データを選別 データの理解 過去のデータ 過去のデータ 過去のデータ データの準備 7 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
◦ 過去のデータは、「分析のために必要なデータ」として集めているとは限らない。 分析に意味のあるデータを選定するのもデータサイエンティストの役割 機械学習をビジネスに活かすにはデータサイエンティストとしての「知見」 が必要 ◦ 対象ビジネスの理解:ビジネスに役立つ結果がでないと意味がない。 ◦ 分析データの理解:データは単なる数字の集まりではない。 ◦ 分析理論の理解:データとビジネスを結びつける中核となる知識。 本セミナーのテーマ 8 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
◦ 水が通常よりも2割多く売れた。 • ◦ 「アナ雪」のDVDが爆発的に売れた。 • ◦ その時はたまたま「アナ雪」が人気だったからでしょ。 コロッケが通常の10倍売れて、小さな店舗では品切れが続出した。 • ◦ 水の在庫を増やせばいいの?売り切れてなかったら関係ないよね。 10倍売れても十分なコロッケを確保・・・・万一売れ残ったら廃棄するのか? ビールが通常の3倍売れて、小さな店舗では品切れが続出した。 • ビールの在庫が少ない店舗は、3倍売れても十分な在庫を確保しよう。でもそれで 在庫確保にかけたコスト以上に儲かるの? Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved. 9
使用するアルゴリズムは、「決定木(けっていぎ)」を用いる。 発生形態 卵生 胎生 呼吸方法 哺乳類 えら呼吸 肺呼吸 魚類 Python Career College 体温 恒温 変温 鳥類 爬虫類 動物の種類を決定する決定木の例 Copyright (C) 2025 National Institute of Informatics, All rights reserved. 10
(*) Data Science for Business(Foster Provost, Tom Fawcett)より引用 11 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
解約しそうかどうかを判定するアプリケーショ ンを作って、販売店に提供した上で、解約防止 キャンペーンに役立てるように指示しました。 その結果・・・??? (*) Data Science for Business(Foster Provost, Tom Fawcett)より引用 12 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
する。特定のクラスを予想する他、各クラスに属する確率を計算する方法もある。 • 携帯の機種変更時に「どの機種を選択するか」を予測する。 • 特別割引キャンペーンのDMを送ったら「申し込む/申し込まない」を予測する。 • 新規メールが「スパムである確率」を計算する。 Regression(回帰分析) ◦ 既存データの背後にある「関数」を推測して、具体的な「数値」を予測する。 • 新規サービスを提供したら「何人のユーザー」が利用するか予測する。 • 広告宣伝費を2倍にしたら売上は「何倍」になるか予測する。 14 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
決定する。 Reinforcement learning(強化学習) ◦ エージェントが環境との相互作用の中でデータを収集して学習を行う。 • 囲碁プログラムがコンピューター同士の対局から有効な手筋を発見する。 • 自動運転プログラムがランダムな運転を通じて、正しく進む方法を発見する。 15 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
の範囲を等分した10個の観測点 ◦ から、10個の値 を取得 (N = 10)。 (*1) およそ ±0.3 の範囲に散らばる乱数の事 標準偏差 0.3 の正規分布 ▪ 解くべき問題 ◦ トレーニングセット の背後 にある関数を推測して、次に観測点 x から 確率 ±0.3 得られる値を予測する。 19 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
の二乗誤差を 計算して、その合計(誤差関数)を与えます。 ▪ 誤差関数が最小になるように係数 を決定します。 20 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
トレーニングセットだけに固有の特徴を拾ってしまい、予測性能の一般性が失われる ことを「オーバーフィッティング」と呼びます。 機械学習を行う際は、学習用のデータ(トレーニングセット)とは別に検証用 のデータ(テストセット)を残しておき、テストセットに対する予測性能を見 て、オーバーフィッティングの発生を検出します。 ◦ 次数 M を増やしていった際の「トレーニングセット」と「テストセット」それぞれの 「平方根平均二乗誤差」の変化の様子を見ます。 トレーニングセット テストセット 全データ Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved. 25
右図のように、M = 3 を超えると テストセットの誤差は減少しなく なります。 ◦ つまり、M = 4 以上はオーバー フィッティングが発生しています。 26 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
のデータを用いて学習した結果です。 ◦ M = 3 を超えると誤差はほぼ一定の 0.3 で落ち着きます。もともと標準偏差 0.3 のノ イズを持ったデータなので、0.3 程度の誤差は必ず残ります。 28 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
M = 9 の高次の項は絶対値が突出して大き くなっています。これは、パラメータの過 剰調整であり、オーバーフィッティングの 兆候と考えられます。 そこで、適当な定数 λ を用いて、下記の ように修正した誤差関数を最小にすると いう条件で係数を決めると、次数が高く でもオーバーフィッティングが発生しに くくなります(正則化と言います)。 ◦ 最適な λ の値は、試行錯誤で決める必要があります。 ペナルティターム (罰則項) 29 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
の範囲を等分した10個の観測点 ◦ から、10個の値 を取得 (N = 10)。 (*1) およそ ±0.3 の範囲に散らばる乱数の事 標準偏差 0.3 の正規分布 ▪ 解くべき問題 ◦ トレーニングセット の背後 にある関数を推測して、次に観測点 x から 確率 ±0.3 得られる値を予測する。 32 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
べき理由はありません。どのような誤差関数がベストかは、問題ごとに試行錯誤する 必要があります。 この方法では、データに含まれる「ノイズ」の大きさも推定できるようになります。 この後の記法として、平均 μ 、分散 σ2 (標準偏差 σ)の正規分布を次の記号で 表します。 ◦ これは、およそ μ ± σ にちらばる乱数です。 確率 ±σ μ Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved. 33
ビジネス上のデータ分析では、一定のデータの性質が予めわかっていることもよくあ ります。(分析するデータの性質を理解することもデータサイエンティストの役割で した。) 何らかの関数 y(x) は、最小二乗法と同様に M 次多項式と仮定します。 さらに、未知のノイズを分散 の正規分布と仮定すると、係数 w が決まった 後、次に観測点 x から値 t が得られる確率は次式になります。(次ページも参 照。) 太文字はベクトル(行列)表記 34 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
考えているモデルが観測データによく適合しているほど、観測データが得られ る確率は高くなると考えられます。 この仮説が正しいものとして、尤度関数が最大になるようにパラメータ (w, β) を決定する手法を「最尤推定」と呼びます。 ◦ 計算上は、次の対数尤度関数を最大するパラメータを求めます。 → 計算式が簡単になると同時に、数値計算をする場合に丸め誤差の影響を 少なくできます。 37 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
◦ β についての偏微分係数からは、次の結果が得られます。これは、観測デー タの平方根平均二乗誤差を標準偏差の推定値とすることを意味します。 ⇒ ∴ ▪ 最尤推定により、次に得られる観測値について、予測の誤差を含めて推測する ことが可能になります。 39 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
関数の次数 M を上げるに従って、トレーニングセットに対する けますが、テストセットに対しては一定値で安定しました。 は減少を続 最尤推定で同様のことを行う際は、「最大対数尤度(Maximum Log Likelihood) ◦ 」の変化を観察します。 尤度関数 は、「トレーニングセットが得 られる確率」ですので、これが大きいほど、「ト レーニングセットによく当てはまるモデル」と言 えます。 41 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
とすると、尤度関数と対数尤度関数は次のようになります。 ◦ 対数尤度関数の μ、β による偏微分係数が 0 になる条件から計算すると下記が得られま す。これは、観測データの平均と分散を未知の正規分布の平均と分散の推定値として 採用することを表します。 42 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
するわけではありませんが、次の性質を持つ推定量は「よい性質を持つ」と 考えられます。 ◦ 観測データ数 N が大きくなると、推定値は真の値に近づく(一致推定量) ◦ 観測を繰り返して何度も推定値を計算した場合、推定値の平均は真の値に近づく(不 偏推定量) 44 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
データポイントは、2タイプに分かれて おり、 ▪ トレーニングセットと 判別直線の例 にラベル付けされている。 解くべき問題 ◦ 2タイプのデータを分割する直線を求める。 ◦ きれいに分割できない場合は、何らかの意味 で「最善」の分割を与える。 •:t = 1 ×:t = -1 49 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
•:t = 1 ×:t = -1 分割直線を次の式で表します。 y これより、「正しく判別されていない 点」では、次の関係が成り立ちます。 x ◦ 分割直線から点が離れるほど(誤っ た領域の内部に入り込むほど)、こ の値の絶対値は大きくなります。 50 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
において、誤って判定された点 ベクトル があった場合、 の方向に w を修正すると、EP(w) の値を減らすことができる」 と解釈できます。(直感的には。) ▪ 厳密に議論すると、誤って判定された点について、1つずつ順番に次の式で w の値を修正していくことを何度も繰り返すと、(完全な分割が可能な場合は) いつかは正しい分割線が得られることが証明されています。 52 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
▪ 完全な分割ができない問題だと w の修正はいつまでたっても終わらない(誤って判定さ れる点はなくならない)ので、適当な回数で修正を打ち切って、その時点の w を答えと します。 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved. 53
◦ その上で、「すべてのデータが z = 1 の平面に乗っている」という特別な場合を考える と、バイアス項を 1 にした先の計算式が得られます。この意味では、バイアス項は任 意の定数にとれます。 56 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
= 1 の場合)収束が極端に遅くなります。 ◦ は のオーダーで修正されるのに対して、 は でしか修正されな いために起こります。このような場合は「バイアス項 c」を「データ群の座標値の平均 的な大きさ」に近い定数に修正することで収束速度が改善されます。 57 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
トレーニングセットに含まれるデータに一定の変換を施して、値のばらつきを 抑える手法を「特徴量の正規化/標準化(Feature Scaling)」と呼びます。 ◦ 予測処理を行う際は、予測データに対しても同じ変換を行ってから学習済みモデルに 入力します。具体的には、次のような手法があります。 • 正規化:平均 0、分散 1 にそろえる(はずれ値の影響を受けにくい) • 標準化:最大 1、最小 0 にそろえる ※ パーセプトロンの場合、データの正規化を行うとバイアス項の修正は不要になります。 59 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
データポイントは、2タイプに分かれて おり、 ▪ トレーニングセットと 判別直線の例 にラベル付けされている。 解くべき問題 ◦ 2タイプのデータを分割する直線を求める。 ◦ きれいに分割できない場合は、何らかの意味 で「最善」の分割を与える。 •:t = 1 ×:t = 0 ※ パーセプトロンの例題と本質的に同じですが、計算上の都合で t の値が異なります。 62 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
ロジスティック回帰では、分割線を次 式で与えます。ここまでは、パーセプ トロンと同じです。 パラメータ w を決定するために「最 尤推定」を用います。 つまり、回帰分析と同様に、あるデー タが得られる「確率」を決めて、ト レーニングセットが得られる確率を最 大にします。 y x 63 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
ある確率を P(x, y) とします。 •:t = 1 ×:t = 0 右図において分割線から右上に進むと P は大 きくなり、左下に進むと P は小さくなると考 えられます。 そこでこの確率を次式で定義します。 :ロジスティック関数 ◦ σ(a) は、右図のように 0 から 1 になめらかに増 加する関数です。 ◦ の分割線上では、確率はちょうど 0.5 になります。 Python Career College 64 Copyright (C) 2025 National Institute of Informatics, All rights reserved.
◦ 点 から のデータが得られた場合、それが起きる確率は: ◦ これら2つは、(技巧的ですが)次のように1つの式にまとめられます。 従って、トレーニングセットが得られる確率(尤度関数)は次式になります。 65 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
(x, y) の新たなデータのタイプを推定する際は、 必ずしも「確率 0.5」を堺に判定する必要はありません。 ◦ 例:「あるウィルスに感染しているか」を示すトレーニングセットにロジスティック 回帰を適用して、検査結果の数値 (x, y) から t = 1 である(ウィルスに感染している) 確率 P(x, y) を求められるようになりました。医師であるあなたは、確率 P(x, y) の値が いくら以上の人に精密検査を勧めるでしょうか? 70 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
▪ ROCグラフから、「最適なしきい値」の検討ができます。 理想は左上(TP=1, FP=0)ですので、 「ROCグラフがどれだけ左上に近づいている か」は、その判定法そのものの評価基準とな ります。 ◦ 理想の判定法 すべてを「陽性」 と判定する ROC曲線の下側の面積(AUC: Area under the curve)が大きいほど優秀な判定法と言えます。 一定確率でランダムに 「陽性」と判定する すべてを「陰性」 と判定する Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved. 73
次元以上の)データの場合は、機械的に分類する手法が望まれます。 一般に「分類指標」が事前に与えられ ていないデータを用いた機械学習を 「教師なし学習」と呼びます。 ◦ この例は、教師なし学習の中でも、「ク ラスタリング」と呼ばれる問題です。 80 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
個の「代表点」をランダムに選びます。 ◦ (2) データに含まれる各点を「もっとも近い代表点」のグループに属するものとして、 k個のグループに分類します。 ◦ (3) それぞれのグループの重心(座標の 平均値)を各グループの新たな「代表 点」とします。 ◦ (4) 新たな代表点を用いて、(2) の処理 を行います。 ◦ これを何度も繰り返すと、「代表点」 と「グループの重心」が一致して、代 表点が変化しなくなるので、それを最 終的なグループ分けとします。 81 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
を次の記号で示します。 がグループ k に属する場合 それ以外 ◦ ▪ グループ k の代表点を とします。 各点について、属するグループの代表点からの距離(の2乗)を合計します。 ◦ 「J の値が小さい方がより適切なグループ分け(および代表点のとり方)である」とし て、J が小さくなるように と を修正していきます。 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved. 82
表記したものを3次元ベクトルの集合と見 なします。k 個の代表点を選択する処理は、k 個の「代表色」を選択していると考えら れます。 ◦ 代表色が決定された後に、各ピクセルの色をそれが属するグループの代表色に置き換 えることで、画像の減色処理を行います。 84 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
◦ この生成器から多数のビットマップ画像を生成することで、不規則な手書き風文字を 生成することができます。 一方、多数の手書き文字のトレーニングセットが与えられた際に、これらを生 成する「Master」を逆に計算で求めることができます。 ◦ K 種類の文字がまざっている場合は、K 種類の生成器が背後にあると仮定して、これ らが「トレーニングセットと同じサンプルを発生する確率 P」を考えます。 ◦ さまざまな「生成器のセット」中で、P を最大にするセットを探し出します。つま り、P に対する最尤推定を実施します。 生成されたサンプル Master 手書き文字生成器 89 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
◦ 「上記の操作を600回繰り返した時に、トレーニングセットと同じ600文字が得られる 確率」を考えて、これを最大にする生成器と確率 を求めます。 に基づいて生成器を1つ選択して、その 600回繰り返す 確率 に応じて 数字を1つ選択 対応する生成器 で画像を生成 90 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
として、このような画像が得られる 確率は次になります。 ▪ この記法を用いると、K 個の生成器は、K 個の確率ベクトル で表現 されます。同じく、トレーニングセットとなる N 個の画像は、ピクセルを並べ たベクトル で表現されます。 91 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
n 番目の文字が 生成される確率 ◦ ▪ 2 個目の生成器が選ばれて、 それから n 番目の文字が 生成される確率 数学的には、複数のベルヌーイ分布を混ぜ合わせた「混合ベルヌーイ分布」にあたり ます。 上記の P を最大化する と を決定するアルゴリズムが、次 に説明する EM 法です。 Python Career College 92 Copyright (C) 2025 National Institute of Informatics, All rights reserved.
を用いて を計算した後、新しい を次式で再計算します。 ▪ 新しい を用いて、再度 返すと、前ページの P を極大化する を計算します。この計算を繰り が得られます。 93 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
の画像データ 現在の生成器 ・・・ ・・・ ・・・ 次に得られる生成器 現在の生成器との 類似度の割合で合成する 95 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
手書きの「0」は、潜在的に「真円の0」と「縦長の0」の2種類に分類されると解釈す ることもできますが、実行ごとに結果が変わる可能性がある点に注意が必要です。 2種類の「0」が 区別されている。 98 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.