筑波大学 システム情報系教授 佐久間 淳先生の機械学習の講義を見て勉強したので学習メモ。
第2回 1. 機械学習概論と単回帰 (2)。
用語メモ
- 平均二乗誤差
-
一つのデータに対する Error(誤差) は、
$$error = |t_i – (wx + b)|$$
\(t_i\) が実測値。\(wx + b\) が予測式そのものなので予測値。データがN点あり、計算処理のしやすさも考慮して絶対値で無く二乗値の平均誤差を求める。
$$E(w, b) = \frac{1}{N}\sum_{i=1}^N (t_i – (wx_i + b))^2$$
これが平均二乗誤差。
この誤差を最小にする\(w\) と\(b\) を取るモデルが最良と言える。 - 最急降下法
-
平均二乗誤差を最小にする\(w\) と\(b\) を求める数学的な手法。
詳細後述。 - \(arg min\)
-
数学記号。以下で\(f(x)\) を最小にする \(x\) を求めなさいという問題。
mathjax で argmin がサポートされてないっぽいので画像で。
引用(講義ポイント)メモ
大まかにデータは3種類の形を取る。
- スカラ ··· スカラ・ベクトルで表される属性。要は元々数字のもの。年齢や収入、気温など
- 順序属性 ··· 順序関係を持つ属性。数値ではないけどなにかしらの順序関係を持つもの。成績評価のA,B,C,Dなど
- カテゴリカル属性 ··· 順序関係も持たず数値でもない離散的な値を持つ属性。血液型とかグルーピングとか
順序属性は順序性を維持したままスカラ値(数値)に変換すればOK。
例えば、
A => 5, B => 4, C => 3, D => 2 など
カテゴリカル属性はよくあるのは 1-of-k変換(one-hot encoding) で表現する。
例えば血液型の場合は4種類あるので、2次元(2の二乗)ベクトルで表現する。
A => (0,0), B => (0,1), => O => (1,0), AB => (1,1)
属性値がN種類ある場合は \(k = \log{2}N\)
5万人弱の個人の様々な属性データが蓄積されており、その個人が年収5万ドルを超えるかどうか予測する。
例えば Capital Gain, Capital Loss というデータは非常にばらつき(偏り)が大きく、全体としての予測率を上げたい場合にはあまり役に立たないかもしれないと考えることができる。
理由は、一部の人を覗きほとんどが同じ属性を持っているため、その属性のせいで一部の人の予測精度が影響を受けたとしても大部分の人の予測精度は変わらないと予想できるら。
このように、自分が相手にしようとしているデータがどういう物なのかを把握することが重要。