教師あり学習
- データ集合の各データの特徴量とラベル(もしくは目標値)の関係を学習するアルゴリズム
- タスクとしては予測(回帰)や分類など
線形回帰モデル
線形
- 比例で表される直線(2次元空間)、平面(3次元空間)、超平面(4次元以上空間)
- 2次元空間だと$ y = ax + b $、3次元空間だと$ z = a·x + b·y + c$
- n次元空間における超平面(hyperplane)の方程式
- $ y = a_0 + a_1·x_1 + a_2·x_2 + \cdots + a_{n-1}·x_{n-1} $
- $ y = a_0 + \displaystyle \sum_{i=1}^{n-1}a_i·x_i $
- $ y = \displaystyle \sum_{i=0}^{n-1}a_i·x_i , where x_0 = 1 $
- $ y = \boldsymbol{a}^T·\boldsymbol{x}, where \boldsymbol{a} = \left(\begin{matrix} a_0 \\ a_1 \\ \vdots \\ a_{n-1}\end{matrix}\right)$
- $ \boldsymbol{a} $はn次元ベクトル
- $ \boldsymbol{a}^T $で$ \left(\begin{matrix} a_0 & a_1 & \cdots & a_{n-1} \end{matrix}\right)$
- $\boldsymbol{x}$もn次元ベクトル、$ \boldsymbol{x} = \left(\begin{matrix} x_0 \\ x_1 \\ \vdots \\ x_{n-1}\end{matrix}\right)$
回帰問題
- ある入力(離散あるいは連続値)から出力(連続値)を予測する問題
- 直線で予測: 線形回帰
- 曲線で予測: 非線形回帰
- 回帰で扱うデータ
- 入力: m次元のベクトル
- 入力の各要素を説明変数または特徴量と呼ぶ
- $ \boldsymbol{x} = \left(\begin{matrix} x_1 & x_2 & \cdots & x_{m} \end{matrix}\right)^T \in \mathbb{R}^m$
- 出力: スカラー値
- 目的変数
- $ y \in \mathbb{R}^1 $
- 入力: m次元のベクトル
線形回帰モデル
-
回帰問題を解くための機械学習モデルの一つ
-
入力とm次元パラメータの線型結合を出力するモデル
- 入力
- $ \boldsymbol{x} = \left(\begin{matrix} x_1 & x_2 & \cdots & x_m \end{matrix}\right)^T \in \mathbb{R}^m$
- パラメーター(重み、回帰係数)
- $ \boldsymbol{w} = \left(\begin{matrix} w_0 & w_1 & w_2 & \cdots & w_m \end{matrix}\right)^T \in \mathbb{R}^{m+1}$
- パラメーターは最小二乗法で推定する
- $ \boldsymbol{w} = \left(\begin{matrix} w_0 & w_1 & w_2 & \cdots & w_m \end{matrix}\right)^T \in \mathbb{R}^{m+1}$
- 線型結合(入力とパラメーターの内積)
- $ \hat{y} = \boldsymbol{w}^T \boldsymbol{x} + w_0 = \displaystyle \sum_{j=1}^{m}w_jx_j + w_0$
- 予測値にはハットをつける
- $ \hat{y} = \boldsymbol{w}^T \boldsymbol{x} + w_0 = \displaystyle \sum_{j=1}^{m}w_jx_j + w_0$
- 入力
-
単回帰モデル
- 説明変数(入力)が一次元
- $ \boldsymbol{y} = \boldsymbol{X} \boldsymbol{w} + \boldsymbol{ε} $
- $ \boldsymbol{X} = \left(\begin{matrix} \boldsymbol{x_1} & \boldsymbol{x_2} & \cdots & \boldsymbol{x_n} \end{matrix}\right)^T $
- $ \boldsymbol{y} = \left(\begin{matrix} y_1 & y_2 & \cdots & y_n \end{matrix}\right)^T $
- $ \boldsymbol{x_i} = \left(\begin{matrix} 1 & x_i \end{matrix}\right)^T $
- $x_0$を1とすることによって、$w_0$も同様に扱えるようにする
- $ \boldsymbol{ε} = \left(\begin{matrix} ε_1 & ε_2 & \cdots & ε_n \end{matrix}\right)^T $
- $ \boldsymbol{w} = \left(\begin{matrix} w_0 & w_i \end{matrix}\right)^T $
- $ \left(\begin{matrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{matrix}\right) = \left(\begin{matrix} 1 & x_1 \\ 1 & x_2 \\ \vdots \\ 1 & x_n \end{matrix}\right) \left(\begin{matrix} w_0 \\ w_1 \end{matrix}\right) + \left(\begin{matrix} ε_1 \\ ε_2 \\ \vdots \\ ε_n \end{matrix}\right) $
- $ \boldsymbol{X} \boldsymbol{w} $はn×2行列と2×1行列の内積(結果はn×1行列となる)
-
線形重回帰モデル
- 説明変数が多次元(m>1)
- 重みは偏回帰係数と呼ぶ
- 単回帰は直線だが、重回帰は超平面
- $ \boldsymbol{y} = \boldsymbol{X} \boldsymbol{w} + \boldsymbol{ε} $
- $ \boldsymbol{X} = \left(\begin{matrix} \boldsymbol{x_1} & \boldsymbol{x_2} & \cdots & \boldsymbol{x_n} \end{matrix}\right)^T $
- $ \boldsymbol{y} = \left(\begin{matrix} y_1 & y_2 & \cdots & y_n \end{matrix}\right)^T $
- $ \boldsymbol{x_i} = \left(\begin{matrix} 1 & x_{i1} & \cdots & x_{im} \end{matrix}\right)^T $
- $ \boldsymbol{ε} = \left(\begin{matrix} ε_0 & ε_1 & \cdots & ε_n \end{matrix}\right)^T $
- $ \boldsymbol{w} = \left(\begin{matrix} w_0 & w_1 & \cdots & w_m \end{matrix}\right)^T $
- $ \left(\begin{matrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{matrix}\right) = \left(\begin{matrix} 1 & x_{11} & \cdots & x_{1m} \\ 1 & x_{21} & \cdots & x_{2m} \\ \vdots & \vdots & \vdots & \vdots\\ 1 & x_{n1} & \cdots & x_{nm} \end{matrix}\right) \left(\begin{matrix} w_0 \\ w_1 \\ \vdots \\ w_m \end{matrix}\right) + \left(\begin{matrix} ε_1 \\ ε_2 \\ \vdots \\ ε_n \end{matrix}\right) $
- $ \boldsymbol{X} \boldsymbol{w} $はn×(m+1)行列と(m+1)×1行列の内積(結果はn×1行列となる)
- $ \boldsymbol{X} $は計画行列/デザイン行列
- 説明変数が多次元(m>1)
-
線形回帰モデルでは最小二乗法でパラメーターを推定
- 二乗誤差(残差平方和): データとモデル出力の二乗誤差の和
- 平均二乗誤差MSE: Mean Squared Error
$$ MSE_{train} = \dfrac{1}{n_{train}} \displaystyle \sum_{i=1}^{n_{train}} (\hat{y_i}^{(train)} - y_i^{(train)})^2 $$ - 最小二乗法では、学習データの平均二乗誤差を最小とするパラメーターを探索する
- その勾配がゼロになる点を求める
- $ \hat{\boldsymbol{w}} = arg min_{\boldsymbol{w} \in \mathbb{R}^{m+1}} MSE_{train} $
- $ \dfrac{∂}{∂\boldsymbol{w}}MSE_{train} = 0 $
- 以下では$_{train}, ^{(train)}は省略$
- ⇒ $ \dfrac{∂}{∂\boldsymbol{w}}\lbrace\dfrac{1}{n} \displaystyle \sum_{i=1}^{n} (\hat{y_i} - y_i)^2 \rbrace = 0 $
- $MSE$を展開
- ⇒ $ \dfrac{1}{n}\dfrac{∂}{∂\boldsymbol{w}}\lbrace (\boldsymbol{X}\boldsymbol{w} - \boldsymbol{y})^T (\boldsymbol{X}\boldsymbol{w} - \boldsymbol{y})\rbrace = 0 $
- 二乗を行列で表現(1×n行列とn×1行列の内積)
- ⇒ $ \dfrac{1}{n}\dfrac{∂}{∂\boldsymbol{w}}\lbrace (\boldsymbol{w}^T\boldsymbol{X}^T - \boldsymbol{y}^T) (\boldsymbol{X}\boldsymbol{w} - \boldsymbol{y})\rbrace = 0 $
- 転置の線形性 & 転置の公式
- ⇒ $ \dfrac{1}{n}\dfrac{∂}{∂\boldsymbol{w}}\lbrace \boldsymbol{w}^T\boldsymbol{X}^T\boldsymbol{X}\boldsymbol{w} - \boldsymbol{w}^T\boldsymbol{X}^T\boldsymbol{y} - \boldsymbol{y}^T\boldsymbol{X}\boldsymbol{w} + \boldsymbol{y}^T\boldsymbol{y})\rbrace = 0 $
- $\lbrace\rbrace$内を展開
- ⇒ $ \dfrac{1}{n}\dfrac{∂}{∂\boldsymbol{w}}\lbrace \boldsymbol{w}^T\boldsymbol{X}^T\boldsymbol{X}\boldsymbol{w} - 2\boldsymbol{w}^T\boldsymbol{X}^T\boldsymbol{y} + \boldsymbol{y}^T\boldsymbol{y} \rbrace = 0 $
- $ \boldsymbol{y}^T\boldsymbol{X}\boldsymbol{w}$はスカラなので、$ \boldsymbol{y}^T\boldsymbol{X}\boldsymbol{w} = (\boldsymbol{y}^T\boldsymbol{X}\boldsymbol{w})^T $
- これを転置の公式で、$ (\boldsymbol{y}^T\boldsymbol{X}\boldsymbol{w})^T = \boldsymbol{w}^T\boldsymbol{X}^T\boldsymbol{y} $
- ⇒ $ 2\boldsymbol{X}^T\boldsymbol{X}\boldsymbol{w} - 2\boldsymbol{X}^T\boldsymbol{y} = 0 $
- ベクトルの微分計算
- $ \dfrac{∂}{∂\boldsymbol{w}}( \boldsymbol{w}^T \boldsymbol{b} ) = \boldsymbol{b} $
- $ \dfrac{∂}{∂\boldsymbol{w}}(\boldsymbol{w}^T \boldsymbol{A} \boldsymbol{w} ) = (\boldsymbol{A} + \boldsymbol{A}^T) \boldsymbol{w} $
- ⇒ $ \boldsymbol{X}^T\boldsymbol{X}\boldsymbol{w} = \boldsymbol{X}^T\boldsymbol{y} $
- 両辺を2で割って、一部を右辺に移動
- ⇒ $ \hat{\boldsymbol{w}} = (\boldsymbol{X}^T\boldsymbol{X})^{-1}\boldsymbol{X}^T\boldsymbol{y} $
- 両辺に左から$ (\boldsymbol{X}^T\boldsymbol{X})^{-1} $をかける
- 正規方程式(Normal equation)が得られた
- $ \dfrac{∂}{∂\boldsymbol{w}}MSE_{train} = 0 $
- 回帰係数
- $ \hat{\boldsymbol{w}} = (\boldsymbol{X}^{(train)T}\boldsymbol{X}^{(train)})^{-1}\boldsymbol{X}^{(train)T}\boldsymbol{y}^{train} $
# (X^TX)^{-1}X^Tの部分を計算する w_wo_y = np.dot(np.linalg.inv(np.dot(X_train.T, X_train)), X_train.T) # w = (X^TX)^{-1}X^T · y w = np.dot(w_wo_y, ys)
- 予測値
- $ \hat{\boldsymbol{y}} = \boldsymbol{X_*}(\boldsymbol{X}^{(train)T}\boldsymbol{X}^{(train)})^{-1}\boldsymbol{X}^{(train)T}\boldsymbol{y}^{train} $
- $\boldsymbol{X_*}$は、予測したい新しい$\boldsymbol{X}$
- $ \hat{\boldsymbol{y}} = \boldsymbol{X_*}(\boldsymbol{X}^{(train)T}\boldsymbol{X}^{(train)})^{-1}\boldsymbol{X}^{(train)T}\boldsymbol{y}^{train} $
非線形回帰モデル
- 非線形な構造を持つ現象に対して、非線形モデリングを適用する
- 例えば、$ y = w_0 + w_1x + w_2x^2 + w_3x^3 $
- $x$の代わりに、基底関数である$φ(x)$を用いる
- $φ(x)$は$x$の何らかの関数
- 例えば、$ y = w_0 + w_1φ_1(x) + w_2φ_2(x) + w_3φ_3(x) $
- ただし、$\boldsymbol{x}$については非線形だが、パラメーター$\boldsymbol{w}$の観点では線形である(linea-in-parameter)ことに注意
- このため、正確には「非線形モデルによる線形回帰」と言える
- 1次元の基底関数
- 多項式: $φ_j = x^j$
- ガウス型基底関数: $ φ_j(x) = exp \lbrace -\dfrac{(x - μ_j)^2}{2h_j} \rbrace $
- $μ_j$が山の位置を、$h_j$が山の幅を規定する
- n次元の基底関数
-
2次元ガウス型基底関数: $ φ_j(\boldsymbol{x}) = exp \lbrace -\dfrac{(\boldsymbol{x} - \boldsymbol{μ_j})^T(\boldsymbol{x} - \boldsymbol{μ_j)}}{2h_j} \rbrace $
-
説明変数: $ \boldsymbol{x_i} = \left(\begin{matrix} x_{i1} & x_{i2} & \cdots & x_{im} \end{matrix}\right)^T \in \mathbb{R}^{m}$
-
非線形関数ベクトル: $ \boldsymbol{φ}(\boldsymbol{x_i}) = \left(\begin{matrix} φ_1(\boldsymbol{x_{i}}) & φ_2(\boldsymbol{x_{i}}) & \cdots & φ_k(\boldsymbol{x_{i}}) \end{matrix}\right)^T \in \mathbb{R}^{k}$
-
非線形関数の計画行列: $ \boldsymbol{Φ}^{(train)} = \left(\begin{matrix} \boldsymbol{φ}(\boldsymbol{x_{1}}) & \boldsymbol{φ}(\boldsymbol{x_{2}}) & \cdots & \boldsymbol{φ}(\boldsymbol{x_{n}}) \end{matrix}\right)^T \in \mathbb{R}^{n×k}$
-
最尤法による予測値: $ \hat{\boldsymbol{y}} = \boldsymbol{Φ_*}(\boldsymbol{Φ}^{(train)T}\boldsymbol{Φ}^{(train)})^{-1}\boldsymbol{Φ}^{(train)T}\boldsymbol{y}^{train} $
- ロジック自体は線形回帰と同じ
-
ロジスティック回帰モデル
分類問題
- ある入力(数値)からクラスに分類する問題
- 分類で扱うデータ
- 入力: m次元のベクトル
- 入力の各要素を説明変数または特徴量と呼ぶ
- $ \boldsymbol{x} = \left(\begin{matrix} x_1 & x_2 & \cdots & x_{m} \end{matrix}\right)^T \in \mathbb{R}^m$
- 出力: スカラー値
- 目的変数
- $ y \in \lbrace 0, 1 \rbrace $ (0 or 1の値)
- 入力: m次元のベクトル
- 3つのアプローチ
- 識別的アプローチ
- $ p(C_k|\boldsymbol{x}) $を直接モデル化
- 生成的アプローチ
- $ p(C_k) $と$ p(\boldsymbol{x}|C_k) $をモデル化し、その後Bayesの定理を用いて$ p(C_k|\boldsymbol{x}) $を求める
- 識別的アプローチには識別関数の構成もある
- 例えば、$ \begin{cases} f(\boldsymbol{x}) \geqq 0 ⇒ C = 1 \\ f(\boldsymbol{x}) < 0 ⇒ C = 0 \end{cases} $
- SVMなど
- ロジスティック回帰は識別的アプローチ
- 識別的アプローチ
ロジスティック回帰モデル
- 分類問題を解くための教師あり機械学習モデル
- 入力とm次元パラメーターの線型結合をシグモイド関数に入力
- 出力(シグモイド関数の出力)は$ y = 1 $になる確率の値
- 入力
- $ \boldsymbol{x} = \left(\begin{matrix} x_1 & x_2 & \cdots & x_m \end{matrix}\right)^T \in \mathbb{R}^m$
- パラメーター(重み)
- $ \boldsymbol{w} = \left(\begin{matrix} w_0 & w_1 & w_2 & \cdots & w_m \end{matrix}\right)^T \in \mathbb{R}^{m+1}$
- パラメーターは最小二乗法で推定する
- $ \boldsymbol{w} = \left(\begin{matrix} w_0 & w_1 & w_2 & \cdots & w_m \end{matrix}\right)^T \in \mathbb{R}^{m+1}$
- 線型結合(入力とパラメーターの内積)
- $ \hat{y} = \boldsymbol{w}^T \boldsymbol{x} + w_0 = \displaystyle \sum_{j=1}^{m}w_jx_j + w_0$
- ただこのままだと$y$は実数になってしまう
- シグモイド関数
- ロジスティック関数ともいう
- $ \boldsymbol{w}^T\boldsymbol{x} \in \mathbb{R} $の出力を$ y \in \lbrace 0, 1 \rbrace $につぶす
- 入力は実数、出力は0〜1の値
- $ σ(x) = \dfrac{1}{1 + exp(-ax)} $
- $a$を増加させると、$x=0$付近での曲線の勾配が増加
- シグモイド関数の微分は、シグモイド関数自身で表現できる
- $ \dfrac{∂σ(x)}{∂x} = aσ(x)(1-σ(x)) $
- シグモイド関数を経ることによって、以下のようになる
- $ P(Y = 1|\boldsymbol{x}) = σ(\boldsymbol{w}^T \boldsymbol{x} + w_0) $
- $σ$はシグモイド関数
- シグモイド関数の出力は確率になり、データYは確率が0.5以上ならば1、未満ならば0と予測することが可能になる
- $ P(Y = 1|\boldsymbol{x}) = σ(\boldsymbol{w}^T \boldsymbol{x} + w_0) $
- 逆に、対数オッズを線形回帰により予測するという言い方もできる
- 発生確率$P$を対数オッズ(ロジット)に変換することをロジット変換という
- $ logit(P) = log(\dfrac{P}{1-P}) $
- 逆に対数オッズ(ロジット)を確率に変換するのが、ロジスティック変換であり、これを実現しているのが、シグモイド関数(ロジスティック関数)
サポートベクターマシーン(SVM: Support Vector Machine)
- 教師あり学習
- 分類と回帰どちらでも適用可能
- 分類は決定的(確率は出さない)
- サポートベクターから最大限マージンを取るように決定境界線を決定する
- サポートベクター: 境界線(面)の最も近くにあるデータ点(マージン上にある)
- サポートベクターは少なくとも正例・負例それぞれ1つずつの2つとなる
- マージンの外側のデータは予測に影響を与えない
- ハードマージンは誤分類を許容しないが、ソフトマージンはある程度誤分類を許容する
- ハードマージンは外れ値一つで境界線が大きく変わってしまい、過学習を起こしやすい
- ソフトマージンは誤分類を許容するので、外れ値によって境界線が大きく変わることがなく、ロバスト性が増す
- ソフトマージンでは、マージンの中にデータが入ることも許容する
- サポートベクター: 境界線(面)の最も近くにあるデータ点(マージン上にある)
- マージンを最大化しつつ,誤分類を減らしていくという最適化問題を解く
- マージンの最大化は、マージンの逆数の最小化と考え、以下を最適化する
- $ min \lbrace \dfrac{1}{M} + C \displaystyle \sum_{i=1}^m𝜉_i \rbrace $
- $M$はマージン、$𝜉_i$は𝑖番目のデータがマージンを侵した具合(=残差)
- パラメーター$C$によって、どれだけ誤分類を許容するかが決まる
- $ C $が大きいと,$ 𝜉 $は小さくないといけないので、誤分類をあまり許容しない($ C $が無限大の時は誤分類を一切許容しない、結果的にハードマージンになる)
- 逆に$ C $が小さいと、比較的誤分類を許容する
- 一般に過学習を防ぐためには$ C $を小さくする方がよい
- $ min \lbrace \dfrac{1}{M} + C \displaystyle \sum_{i=1}^m𝜉_i \rbrace $
- マージンの最大化は、マージンの逆数の最小化と考え、以下を最適化する
- 一般的な線形分類器の決定境界は超平面になる
- 超平面は以下の式で表される
- $ θ_0 + θ_1x_1 + θ_2x_2 + \cdots + θ_nx_n = 0 $
- $x_0 = 1$とすると、
- $ θ_0x_0 + θ_1x_1 + θ_2x_2 + \cdots + θ_nx_n = 0 $
- これをベクトルで表記すると、
- $ θ^T \boldsymbol{x} = 0 $
- $ θ^T \boldsymbol{x} < 0 $が>0か、<0かで超平面のどちら側にあるかを判定する
- 超平面は以下の式で表される
- あるデータ$\boldsymbol{x}$から超平面への距離は、
- $ d = \dfrac{|θ_0x_0 + θ_1x_1 + θ_2x_2 + \cdots + θ_nx_n|}{\sqrt{θ_0^2 + θ_1^2 + θ_2^2 + \cdots + θ_n^2}} $
- この距離がマージンとなり、これを最大化するためには、分母である$ \sqrt{θ_0^2 + θ_1^2 + θ_2^2 + \cdots + θ_n^2} $を最小化する
- 平方根を外して、$ min \displaystyle \sum_{j=0}^n{θ_j^2} $と表現できる
- $ θ^T \boldsymbol{x} < 0 $が>0か、<0かで超平面のどちら側にあるかを判定するが、実際にはマージンを取ることを考慮し、損失を計算する際に$ θ^T \boldsymbol{x} $が$ <-1 $(y=0の時)、また$ > 1 $(y=1の時)には損失は0とし、それ以外の場合に損失を線形に増やす
- そのためにヒンジ損失(hinge loss)を利用する
- 正解ラベルが1のデータでは、$ θ^T \boldsymbol{x} > 1 $であれば損失が0
- 正解ラベルが0のデータでは、$ θ^T \boldsymbol{x} < -1 $であれば損失が0
- そのためにヒンジ損失(hinge loss)を利用する
- ハードマージンの場合、以下を制約として、$ \displaystyle \sum_{j=0}^n{θ_j^2} $を最小化する
- $ θ^T \boldsymbol{x}> 1 \text{if} y_i = 1 $
- $ θ^T \boldsymbol{x}< -1 \text{if} y_i = 0 $
- ソフトマージンの場合、変数$𝜉_i$(スラック変数)を導入して上記の制約を以下のように緩め、損失関数$ \displaystyle \sum_{j=0}^n{θ_j^2} + C \sum_{i=1}^m{𝜉_i}$ の最小化を図る
- $ θ^T \boldsymbol{x}> 1-𝜉_i \text{if} y_i = 1 $
- $ θ^T \boldsymbol{x}< -(1-𝜉_i) \text{if} y_i = 0 $
- カーネルトリック
- 一見線形分離ができなそうなデータも、高次元特徴量を作ることで線形分離させることができる(高次元に写像する)
- 例えば、特徴量$ x $を$ (x, x^2) $の二次元空間に写像し、新しい特徴量を生成する
- この際、写像する関数(射影関数)を$ Φ(x) $で表し、$ Φ(x_i)^TΦ(x_j) $の計算を行う
- $ Φ(x) $が新たな特徴ベクトル
- ただし、これはそのままでは非常に計算コストが高くなる
- カーネルトリックでは、計算量を減らすために、特徴ベクトルの内積である$Φ(x_i)^TΦ(x_j)$を一つのカーネル関数に置き換える
- $ K(x_i, x_j) = Φ(x_i)^TΦ(x_j) $
- $ K(x_i, x_j) $がカーネル関数
- よく使われるカーネル関数
- 正規化線形カーネル
- $ K(x, x') = \dfrac{x^Tx'}{||x||||x'||}$
- 多項式カーネル
- $ K(x_i, x_j) = (x_i^Tx_j+c)^d $
- ガウスカーネル(RBFカーネル、動径基底関数)
- $ K(x_i, x_j) = exp\lbrace -\dfrac{||x_i - x_j||^2}{2σ^2} \rbrace $
- シグモイドカーネル
- $ K(x_i, x_j) = -\dfrac{1}{1+exp(-γx_i^Tx_j)} $
- これらのカーネル関数を使い、
- $ f(x) = \displaystyle \sum_{i=1}^ma_iK(x, x_i) $
- 未知のデータ$x$に対して全ての学習データ$x_i$とのカーネル関数の結果を係数$a_i$を使って線形結合した形にする
- 正規化線形カーネル
- 一見線形分離ができなそうなデータも、高次元特徴量を作ることで線形分離させることができる(高次元に写像する)
- 計算例: TBF
決定木とランダムフォレスト
- 決定木とは特定の特徴がよく現れるようなデータのかたまりを見つけ、その分類ルールを生成する機械学習の手法
- 目的変数の特徴が固まって存在するようなデータグループを見つけていく
- 複数の説明変数を使った条件でデータを分割していくことで、そのデータ領域内における目的変数の特徴の濃度を高めていく
- 得られた説明変数の条件で構成されるデータの分岐ルール(If-Thenの条件ルール)をツリー構造で生成する
- 決定木には分類木と回帰木という2つのタイプがある(つまり、分類と回帰両方に利用できる)
- 回帰木の場合、各データ領域内の値の平均値を期待値として評価する
- 分岐は情報利得の最大化(=不純度の減少量の最大化)を実現するように決定する
- 実際の分岐の指標としては、モデルにより、ジニ係数、カイ2乗統計量、エントロピーなどを利用する
- データのスケールを事前に揃えておく必要がない、分析結果の説明が容易であるなどのメリットがある
- 決定木とバギングを組み合わせたものが、ランダムフォレスト
- 複数の決定木を作成し、その多数決で最終的な結果を出す
k近傍法(kNN)
- 教師あり学習
- 分類
- 最近傍のデータをk個取ってきて、それらがもっとも多く所属するクラスに識別
- k=1だと最近傍法
- kの値を変えると分類結果も変わる
- kを大きくすると決定境界は滑らかになる
- 一個抜き交差検証法(leave-one-out cross-validation)
- 1個のデータのみをテスト用に利用し、残りを全て学習データとして利用する交差検証
- データの数だけ学習を繰り返し、モデルごとにテストして得られた結果を平均し算出
- 1個のデータのみをテスト用に利用し、残りを全て学習データとして利用する交差検証