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): トレーニングデータセットから識別関数を学習せず、データセットを暗記

おわり

だいぶ雑になってきた。

前やった本と内容が被っていることを言い訳にしておく