3.2.3 K-平均法

Download Report

Transcript 3.2.3 K-平均法

データサイエンス講義輪講
第3章 アルゴリズム
序章
アルゴリズムとは?
• タスクを達成するための手続きやルールの集合
• 効率的なアルゴリズム→データ処理と準備を行うパイプライ
ンの基礎である
序章
アルゴリズムのカテゴリー
1.データ変更、準備、処理のためのアルゴリズム
(データエンジニアリング)
2.最適化アルゴリズム
3.機械学習アルゴリズム
3.1 機械学習と統計モデルリングの違いについて
元々は…
・機械学習アルゴリズム→計算機科学分野
• 統計モデルリング→統計分野
3.1 機械学習と統計モデルリングの違いについて2
1.パラメータの解釈
解釈する→統計
解釈しない→機械
2.信頼区間
不確実性をもつ→統計
不確実性をもたない→機械
3.明示的な仮定の役割
明示的に仮定する→統計
明示的に仮定しない→機械
3.1 機械学習と統計モデルリングの違いについて3
まとめると…
統計専門家→
不確実性を調査する。何事にも100%の確信を持たない。
計算機科学者→
不確実性は考えない。無心に構築する。
*データサイエンティストは統計、計算機科学者両方の文化を持つ。
3.2
序章
• 現実世界の問題を数学的に表すと、「分類」「予測」に分けられる。
「分類」「予測」には多くのモデルやアルゴリズムが利用可能。
最適な方法を選択するのは難しい。
問題の文脈を理解し、特徴を問題として捉えることが必要!
3.2
3つのアルゴリズム
1.線形回帰
2.K近傍法
3.K平均法
機械をデータで自動化
3.2.1
線形回帰
• 線形回帰について
最も一般的な統計手法。
2つの変数または属性間の数学的な関係性を表現するときに利用。
結果変数、予測変数の関係が線形であると仮定。
3.2.1 線形回帰 例1
最初に決定論的な直線を考えることで線形回帰を構築していく
𝓎 = ℱ 𝓍 = 𝛽0 +𝛽1 𝜒
例1: 簡単な線形例
月25ドルの、SNSユーザー数と総収入を2年間記録
S={(x,y)=(1,25)(10,250)(100,2500)(200,5000)}
y=25x
・線形パターンが存在しxとy間の係数は25であると分かる
(P.64図3-1参照)
3.2.1 線形回帰 例2
• 例2:ユーザレベルのデータ
1週間に渡るSNSでのユーザー行動を加味する
総友達、新規友人数、SNSを使用した時間、年齢…etc
→ユーザーをランダムサンプリングしプロットする
今回はx=新規友人数 y=滞在時間でプロット(P.65図3-2を参照)
何か線形関係がありそう…?
3.2.1
線形回帰 傾向と変動の取り込み
1. 線形関係を仮定して線を引いてみる。(P.66図3-3参照)
2. 𝓎 = 𝛽0 +𝛽1 𝜒と仮定してモデリングを開始
3. 感想されたデータを用いて最も良い𝛽0 、𝛽1 𝜒を見つける
(行列を使って書き下すと y=x・𝛽)
4. モデルのフィッティングをする
3.2.1 線形回帰 モデルのフィッティング
• 線形回帰を使うときは、直線から各点の距離が最小になる直線を見
つけるべき
• 予測誤差を最小にした直線を定義する
• 線形回帰の探索
近似・予測したyと観測したy間の垂直距離を二乗し、合計が最小とな
る直線を探す(最小二乗法) P.68図3-4参照
・残差平和法を定義し、微分値が𝛽=0になるものを見つける
𝛽 = (𝑥 𝓉 𝓍)^(-1) 𝑥 𝓉 𝓎
3.2.1 線形回帰 モデルのフィッティング2
• 実際に𝛽を求めてフィッティングするのはRを使用(P.69参照)
• 推定の結果は y=-32.08+45.92x (丸めるとy=-32+46x )
• プロットするとP.69図3-5になる
3.2.1 線形回帰モデルの拡張
線形回帰モデルを拡張する。
主に3つの方法が存在!
1. モデルリングの前提に誤差を追加する
2. 予測変数を追加
3. 予測変数の変形
3.2.1 線形回帰モデルの拡張
• モデリングの前提に誤差を追加
xからyを予測するのにモデルを使った場合、予測は決定論的になり変動を
とらえることが出来ない。
変動をモデルで表現したいので次のように拡張
・𝓎 = 𝛽0 +𝛽1 𝜒 +∈
∈は誤差則
ノイズは正規分布しているというモデル仮説をたて
・ ∈∼ N(0,𝜎 2 ) と表される
モデルのフィッティングを行いデータから𝛽0 、𝛽1 𝜒、 ∈をどのように推測す
ればよいのか?
3.2.1 線形回帰モデルの拡張
• 観測データポイントから直線がどれぐらい離れているか見る
• 分散(𝜎 2 )は
𝑖
𝑒2
𝑛−2
と推定できる
→n-2で割ることによって不偏推定量が得られる。
上記の式は平均二乗誤差と呼ばれる。
→予測値が観測値からどれだけ離れているかを表している
3.2.1 線形回帰モデルの拡張
• 評価指標
推定やモデルがどれほど信用できるかという問題
• 決定係数
モデルによって説明される分散の割合。
平均二乗誤差が全誤差で割られていることに注目!
・クロスバリデーション
トレーニングデータ80%とテストデータ20%に分割し、モデルフィッティング
を行い平均二乗誤差の比較を行う。
等しければオーバーフィッティングの危険はない。
3.2.1 線形回帰モデルの拡張
• 他の予測変数を追加する
これまで見たのは1つずつの結果変数または従属変数、予測変数の
単純な線形回帰だった。
他の予測変数を構築することで下記のモデルも拡張できる。
𝓎 = 𝛽0 +𝛽1 𝑥1 + 𝛽2 𝑥2 + 𝛽3 𝑥3 +∈
→多重線形回帰という
3.2.1 線形回帰まとめ
・結局、いつなんで使うの?
他の変数を知っている時にある変数を予測したい
2つ、またはそれ以上の変数間の関係を説明もしくは理解したい。
・どうやるの?
1. モデル書き下し
2. モデルフィッティング
3. 最小二乗法の拡張
3.2.1 線形回帰まとめ2
• ここまでいろいろやってきたがモデル作成者にとって一つの
問題に直面する。「決して真実を知りえない」ことである。
・モデルを評価するために最善を尽くすが自分が正しいこと知ることは
ない。こういう場合、より多くのデータを使うことが助けになる。
3.2.2 k近傍法
k近傍法とは・・・
k近傍法は、あらかじめ分類やラベル付けされたオブジェクト群と、ま
だ分類もしくはラベル付けされていないオブジェクトがあるときそれら
を自動的にラベル付けするためのアルゴリズムである。
例)
「良い」「悪い」とラベル付けされた映画の集合に未評価の映画があっ
たとする。映画の長さやジャンル、製作費などの与えられた属性から
似た属性を探す。似た映画の評価から鑑賞せずに未評価の映画を評
価できる。
3.2.2 k近傍法
自動的にラベル付けをする
類似度を定義すること。この類似度を測ることで、類似度が高い項
目を取り出せる。(この項目は近傍と呼ばれ「投票権」を持つ)
k値を決定する。このkはデータサイエンティストとして自身で選択す
るものである。
3.2.2 k近傍法
k近傍法の処理の概要
1. 類似度・距離指標の決定
2. データセットをトレーニングデータとテストデータに分割
3. 評価指標の選択
4. 評価指標を確認しながら、k近傍法を繰り返し実行
5. 評価指標が最高になるkの選択
6. 同じトレーニングデータを用い、新たなテストデータの作成
3.2.2 k近傍法
類似度・距離指標の種類
• ユークリッド距離
•
•
•
•
•
コサイン類似度
ジャッカード距離
マハラノビス距離
ハミング距離
マンハッタン距離
データの種類に応じて類似度・距離指標を選択
(導入した人の視点・使い方次第で変わるものである)
3.2.2 k近傍法
トレーニングデータとテストデータ
機械学習アルゴリズムにとって、トレーニングフェーズとテストフェー
ズを用意することは、一般的なアプローチである。
3.2.2 k近傍法
トレーニングフェーズ
→モデルの作成や訓練
k近傍法におけるトレーニングフェーズ
→ラベル付けされたデータを読み込む
3.2.2 k近傍法
テストフェーズ
→モデルをテストするために新しいデータを用いる。
K近傍法におけるテストフェーズ
→データ全体からある程度データを分離する。通常はランダムに選択
されたデータを保存しておく
3.2.2 k近傍法
評価指標の選択
• 感度
• 特異性
• 精度
• 正確度
• 誤分類率
3.2.2 k近傍法
kの選択
kは自身で制御できるパラメータである。良い推測をするためには、
データを深く理解することが必要である。いくつかのkについてk近傍法
を何度か実行し、その評価指標を毎回確認し観察することが望ましい。
3.2.2 k近傍法
モデリング上の仮定
k近傍法は、母集団について前提を設けないノンパラメトリックな手法の一
例である。しかし、このようなk近傍法にも前提としている仮定がある。
•
•
•
•
特定の「距離」の概念上に構築された特徴空間上に、データが存在する。
トレーニングデータは、2つ以上のクラスに分類、ラベル付けされる。
近傍の数kは自身で選択する。
観測した特徴とラベルが何らかの形で関連すると仮定している。
3.2.3 K-平均法
これまで見てきたのは、正解を事前に知っている状
態で、モデルをできるだけ正確にしようとするアルゴリ
ズムだった。
K-平均法は、データのクラスタを見つけることによっ
て正しい答えを定義することが目標。
クラスタ・・・同じ特徴を持つデータの集まり
どんな時に有用か
• 異なるユーザに、異なる体験を提供したい場合
• 特定のグループに対してうまく機能するモデルがほし
い場合
• 統計における階層的モデリングをしたい場合
使用例
任意の人数の人にK-平均法を使うとする。
• 年齢などの属性は20~24,25~30などといった区分を
作成する。
• 同じ方法で、収入のような他の属性にも区分を作成
する。
• 住んでいる土地の名前はそれ自身がまとまりである
といえる。
ここで作ったそれぞれの区分の数をかけると、区分の
合計が求められる。
例)年齢についてのまとまり=10
性別についてのまとまり=2
10×2 ×4 = 80
住んでいる地域についてのまとまり=4
対象の人たちは、(この例で言うと)80個の区分のいず
れかに分類される。・・・クラスタリング
⇒K-平均法は、区分の数をkとするクラスタリング
アルゴリズム
動作の様子
1. d次元においてk個の重心(クラスタの中心点)をラ
ンダムに作る
2. 各データポイントを最も近い重心に割り当てる
3. 割り当てられたデータポイントの平均位置に重心
を移動する
4. 割り当ての変更がなくなるか、ほぼ変更がなくなる
まで2と3を繰り返す
問題点
• 範囲こそあるものの、kの選択は科学的とは言えない
• いくつかの解の間を行き来するループに入ることで1
つの解に収束しない可能性がある
• 解釈可能性が問題になる可能性があり、答えが全く
役に立たないこともある
まとめ
• 回帰・・・1つ以上の予測変数を使って、連続値を持
つ結果変数を予測するアルゴリズム。
• クラスタリング・・・似たオブジェクトをグルーピングす
るアルゴリズム。距離と評価尺度の概念が重要。