Python Machine Learning Ch3
by mmyoji
2 min read
前回 の続き
分類問題 - 機械学習ライブラリ scikit-learn の活用
概要
『Python ではじめる機械学習』でやったのと同様、色々な classification アルゴリズムを scikit-learn で解いてみる
3.1 分類アルゴリズムの選択
特になし
3.2 scikit-learn 活用へのファーストステップ
sklearn の Perceptron を使って iris dataset の分類をしようとするだけ。
線形分離不可能なデータセットを用いるため、収束しない。
3.3 ロジスティック回帰を使ったクラスの確率のモデリング
Logistic Regression model の話
オッズ比 (odds ratio): 事象の起こりやすさを示す
ロジット関数: オッズ比の対数
ロジスティック関数: ロジット関数の逆関数。特徴的な S 字形から、 シグモイド 関数とも
ロジスティック回帰は、気象予報や医療分野など幅広い分野で利用されている。
過学習したモデルを「バリアンスが高い」とも言う
学習不足なモデルを「バイアスが高い」とも言う
バイアスとバリアンスのトレードオフを探る方法の1つとして、正則化に基づきモデルの複雑さを調整することが挙げられる
最も一般的な正則化に L2正則化 がある
3.4 サポートベクトルマシーンによる最大マージン分類
SVM での最適化の目的は マージン の最大化
マージン: 超平面(決定境界)と、それに最も近いトレーニングサンプルとの間の距離
この超平面に最も近いトレーニングサンプルのことを サポートベクトル と呼ぶ
3.5 カーネル SVM を使った非線形問題の求解
線形分離できないデータを高次元に射影することで分離可能にする
「カーネル」という用語については、2つのサンプル間の「類似性を表す関数」であると解釈できる
3.6 決定木学習
情報利得 information gain: 分割された集合の要素についてのばらつきの減少
決定木の深さが深すぎると過学習に陥りやすくなる
ランダムフォレスト : 分類性能が高く、スケーラビリティに優れ、使いやすい
3.7 k近傍法: 怠惰学習アルゴリズム
kNN
怠惰学習 (lazy learner): トレーニングデータセットから識別関数を学習せず、データセットを暗記
おわり
だいぶ雑になってきた。
前やった本と内容が被っていることを言い訳にしておく