ラビットチャレンジ:Stage2実装演習レポート

機械学習の様々な手法(○○回帰モデルなど)を、数学的な背景から紐解いていくというもの。
コード書くのはあくまでも補助的で、まずは数式レベルで各モデルの意味を理解することが重要

線形回帰モデル

ざっくりと言えば直線的なデータの関係から、未知の結果を予測するモデル。最もシンプルな構造は比例関係にあるようなデータ。

求める値=目的変数
影響を与えるデータ=説明変数

として、目的変数を説明変数の線形関数(一次式)で表し、その係数を求めることでモデルを表現する。

y = w0 + w1*x + w2*x + w3*x ・・・・

実際には、方程式を解くように一意の解を求めるのでは無く、すべてのデータに対し予測値(一次式の計算結果)と実際の値(データに含まれる値)の差をとり、最小二乗法によってその差が最も小さくなるように一次式の係数(w)を定める手法をとる。

演習:ボストンハウジングデータを使った住宅価格の予測
sklearnに含まれる初学者の学習用データセットとして有名なボストンハウジングデータを使った住宅価格の予測を試してみる。

画像1

画像2

手で計算すると、複雑な計算も数行のコードで実現できる。ただ、このままではただの「魔法の箱」になってしまうので、背景となる数学的アプローチを理解しておく必要がある。

非線形回帰モデル

線形回帰モデルにおける一次式を、xの任意の関数Φj(x)に置き替えた式として考える。

y = w0 + w1*Φ1(x) + w2*Φ2(x) + w3*Φ3(x) ・・・・

このとき重要なポイントは、wについては線形のままであるということ。
つまり、係数wについては線形関数であるため、線形回帰モデルと同様の手法で係数wを求めることが出来る。

Φj(x)の代表的なものとしては

多項式関数
Φj(x) = aj0*x^0 + aj1*x^1 + aj2*x^2 + aj3*x^3 + ・・・・

ガウス型既定関数
Φj(x) = exp{-(x-uj)^2/2hj}

などがある。

Φj(x)に複雑な関数を用いると過学習が発生しやすいため、正則化法を利用して表現力を抑止するなどの手法を取り入れる。

ロジスティック回帰モデル

分類モデル( 0 or 1 )に利用するモデル。

シグモイド関数  sig(x) = 1/(1 + exp(-x)) を用いて、目的変数を  0 ( sig(x) < 0.5 ) または 1 ( sig(x) ≧ 0.5 )に取ることで 決定する。

演習:タイタニックの乗客データをもとにした生死判別のモデル

画像3

画像4

画像5

主成分分析

多変量解析における次元圧縮の手法。次元を削減するのではなく、情報損失をなるべく小さく圧縮する。

1.最も分散が大きくなるように低次元化を行う。
※分散が最も大きくなる射影軸をとることで、情報損失を最小化できる。

2.それぞれのベクトルは直行する

演習:乳がん検査データの2次元圧縮

画像6

画像7

アルゴリズム

・k近傍法
与えられたデータに対し、最も近い点をk個取ってきて、それらが最も多く所属するクラスに分類する。教師あり学習の一つ

例:以下の図で、点X(青い点)が「赤・緑」のどちらに分類されるかを考える

画像8

K=1のとき

画像9

最初の一つ目が赤のため、「赤」に分類される

K=5のとき

画像10

最も近い5個は赤=2個、緑=3個のため、「緑」に分類される

K=7のとき

画像11

最も近い7個は赤=4個、緑=3個のため、「赤」に分類される

・k-means
クラスタリング手法の一つで、代表的な教師なし学習

画像12

こんな風に分けたい
↓↓↓↓↓

画像13

演習

画像14

画像15

サポートベクターマシン

教師あり学習による2値分類モデル。データを二つに分類するための超平面を見つけるというもの。2次元データでは以下のようなイメージ

画像16

複数の線を持つことが出来るが、最も近い点との距離が最大(マージンが最大という)となる線を決定境界と呼ぶ

画像17

上記の図のように、完全に2分することが出来る決定境界が存在する分類をハードマージンと呼ぶが、データによっては必ずしも完全に2分することが出来ないケースも存在する。

そのとき、条件を緩めていくつかは反対側に入ってしまう(多くは2分できる)ような分類をソフトマージンと呼ぶ。

ソフトマージンはスラック変数と呼ばれる許容誤差を定め、マージンを最大化しつつ誤差を最小化する

画像18

演習

画像19

画像20


この記事が気に入ったらサポートをしてみませんか?