本日のまとめ
分類アルゴリズムの選択
- 分類器の性能は学習に利用可能なデータに依存する
一般的なアルゴリズム選択の手順は以下の通り
特徴量を選択し、サンプルを収集する
- 性能指標を選択する
- 分類器と最適化アルゴリズムを選択する
- モデルの性能を評価する
- アルゴリズムを調整する
Scikit-learnによるパーセプトロン
train_test_split
は、内部的にトレーニングデータをシャッフルしてくれるtrain_test_split
の引数stratify
は、組み込み機能としてサポートされている層化サンプリングを利用する。 これは、train_test_split
から返されるトレーニングデータサブセットと、テストデータサブセットに含まれている クラスラベルの比率が等しくなるprocessing
モジュールのStandardScaler
クラスを用いて特徴量を標準化する- トレーニングデータとテストデータの標準化には、同じスケーリングパラメータを利用することが大事
- 性能指標の評価には、
metrics
モジュールを利用する - 決定境界をプロットしてみると、どのようなデータが分類誤りとなっているかがわかりやすい
- パーセプトロンでは、完全に線形分離可能なものでないと、収束しない
ロジスティック回帰
- 線形分類問題と二値分類問題に対する強力なアルゴリズム
ロジスティック回帰と条件付き確率
- オッズ比(odds ratio)とは、正事象の確率をpとしたとき、```p / 1 - p"とあらわされる。 参考
- ここで、正事象とは、罹患しているかどうかなど、予測したい事象のことで、クラスラベルとしては1として考える。
- ロジット関数(ある確率が与えられたとき、その確率のオッズ比の対数)は、0<x<1のxを受け取り、実数の値に変換する
- ロジット関数を用いて、特徴量の値と対数オッズの線形関係を表す
p(y=1 |x ))
は特徴量xが与えられたときに、サンプルがクラス1に属するという条件付き確率- 条件付確率-
- 実際に関心があるのは、サンプルが特定のクラスに属している確率を予測すること。 これは、ロジスティック関数の逆関数となり ロジスティックシグモイド (logistic sigmoid) 関数とも呼ばれる 参考
- 上記の特徴量とロジット関数の逆関数を求めると以下のように書ける
ここで、
シグモイド関数のプロットは以下のようになる。 zの値が大きい(オッズが大きい!)場合は、1に近づき、zの値が小さい(オッズが小さい)場合は、0に向かう。z=0(オッズのpが0.5なので、確率がeven)のとき、シグモイドは0.5となる。
尤度について
参考 これも - パラメータがある値をとるときに、観測している事象や事柄が起こる確率 - 尤度は、パラメータの関数として表して、尤度関数と呼ばれることもある - 尤度関数の基本概念はある事象が観測されたときに、どのようなパラメータを持つ確率密度(確率分布)から生まれたものだったかという問いに答えるもの - ある「10個の標本(x1...x10)が同時に得られた分布」について、各標本をえる確率P(xi)が独立だった場合、パラメータベクトルをwとして、以下のように書ける。
上記は、極端に小さな値となることもあるので、計算も対数にした方が簡単なので、 対数尤度を考えることが多い