データマイニング班5回目は線形回帰モデルの拡張例に、過適合とその対策話
駆け足気味ですが、データマイニング班5回目で「線形回帰モデルの多項式拡張、過学習とその回避」について大凡終わりました。流れとしては、先週のregression.LinearRegression()をベースに、
- 入出力における線形性と非線形性と、モデルにおける線形性と非線形性
- シンプルな線形回帰モデル(Σθx)への多項式モデルの導入(実際にはモデル変更はせずに、事前にデータ拡張してからモデルへ渡す形で実装)
- モデルの表現力を高める(ここでは多項式の次数を上げる)ことのメリットとデメリット確認
- 過学習が起こる要因
- 代表的な回避策
- ペナルティ項の導入
- 交差確認によるパラメータ調整
という流れを、コードと結果を例示しながら進めてみました。多分、消化不量多し。ま、それでもこの流れは一通りやりたかったので。
去年は「scikit-learnをツールとして使おう」だけで終わっていたのを、今年は「機械学習が学習するってどういう意味?」「パラメータを推定するってどういうこと?」「どういう問題、工夫があるの?」という事柄について一例は示すぐらいを目指してみました。これで機械学習内部についてやっておきたかった部分は終われたか、な。講義ではなくて学生実験なので、これ以上は深入りしない予定です。ただ、後1,2回ぐらいはscikit-learnの使い方と、データマイニングについての補足は必要か。1回で終われるなら、7週目からアプリケーション検討に入れるか。去年は11/17からアプリケーション検討してたようなので、流れを大きく変えてはいるけど同じぐらいのペースで進んでいるらしい。