Aidemy 2020/10/28
はじめに
こんにちは、んがょぺです!バリバリの文系ですが、AIの可能性に興味を持ったのがきっかけで、AI特化型スクール「Aidemy」に通い、勉強しています。ここで得られた知識を皆さんと共有したいと思い、Qiitaでまとめています。以前のまとめ記事も多くの方に読んでいただけてとても嬉しいです。ありがとうございます!
今回は、教師あり学習の二つ目の投稿になります。どうぞよろしくお願いします。
*本記事は「Aidemy」での学習内容を「自分の言葉で」まとめたものになります。表現の間違いや勘違いを含む可能性があります。ご了承ください。
今回学ぶこと
・モデルの汎化について
モデルの汎化
(復習)汎化とは
・回帰分析での予測は関数に基づいたものであるが、実際の価格変動には幅があり、入力データが同じでも結果が異なることもままある。
・このような前提のもとで、モデルが過去のデータを信頼しすぎると予測が破綻してしまうことになる。これを過学習と言い、過学習を防ぐことを汎化という。
正則化
・線形回帰における汎化の手段として、正則化というものが用いられる。正則化とは、モデルの複雑性にペナルティを設け、モデルを一般化しようとすることである。
・正則化には「L1正則化」と「L2正則化」の2種類がある。
・L1正則化とは、予測に対する影響が小さいであろうデータの係数を0に近づけることで、余分な情報を削減して正則化を行う。
・L2正則化とは、係数の大きさに制限を設けることで、過学習を防いで正則化を行う。
ラッソ回帰
・ラッソ回帰とは、L1正則化を使う回帰モデルを指す。
・L1正則化は、余分な情報が多い時に高い効果があるので、例えばデータ数(行数)に対するパラメータ数(列数)が多いときなどにラッソ回帰が使われる。
・ラッソ回帰の使い方は、model=Lasso()のようにすれば良い。
リッジ回帰
・リッジ回帰とは、L2正則化を使う回帰モデルを指す。
・L2正則化は、係数の範囲に上限ができるため、汎化されやすい。
・リッジ回帰の使い方は、model=Ridge()のようにすれば良い。
ElasticNet回帰
・ElasticNet回帰とは、L1正則化とL2正則化を組み合わせて使う回帰モデルを指す。
・L1正則化の情報を取捨選択してくれる点と、L2正則化の汎化されやすい点を持つので、メリットが大きい。
・ElasticNet回帰の使い方は、model=ElasticNet()とすれば良い。
・また、引数に「l1_ratio=0.3」などのように指定すれば、L1正則化とL2正則化の割合を指定できる。
まとめ
・線形回帰における汎化の手段には、正則化がある。
・正則化にはL1正則化とL2正則化があり、前者を使った回帰がラッソ回帰、後者がリッジ回帰、両方を使った回帰がElasticNet回帰と呼ばれる。
今回は以上です。最後まで読んでいただき、ありがとうございました。