回答編集履歴
2
誤字の修正
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
また、特徴量選択の際に、どこまでのデータを利用するのかは、様々な流儀があるようです。必ずしもout-of-Foldで検証するべきとは限らず、実際の学習と同じテストデータをそのまま使うことが多いです。サンプルコードも単純にx-train, y-trainそのまま使っている例が多いです。この理由としては、特徴量選択という行為は、本質的にはモデルを単純化して、バリアンスを減らす方向に働くため、オーバーフィッティングのリスクは他の最適化より少ない
|
17
|
+
また、特徴量選択の際に、どこまでのデータを利用するのかは、様々な流儀があるようです。必ずしもout-of-Foldで検証するべきとは限らず、実際の学習と同じテストデータをそのまま使うことが多いです。サンプルコードも単純にx-train, y-trainそのまま使っている例が多いです。この理由としては、特徴量選択という行為は、本質的にはモデルを単純化して、バリアンスを減らす方向に働くため、オーバーフィッティングのリスクは他の最適化より少ないからである、と考えます。なお、書籍「Kaggleで勝つデータ分析の技術」では「理想的にはout-of-Foldで検証することが望ましい」と記載されており、逆に言えば、多くの場合はそうしていない、ということを表現しています。
|
18
18
|
|
19
19
|
|
20
20
|
|
1
記述の追加
test
CHANGED
@@ -1,9 +1,25 @@
|
|
1
1
|
こちらの記載がわかりやすいように思います。
|
2
2
|
|
3
|
-
https://datachemeng.com/post-3447/
|
3
|
+
[変数選択・特徴量選択のときに注意すること](https://datachemeng.com/post-3447/)
|
4
4
|
|
5
5
|
|
6
6
|
|
7
7
|
- 特徴量選択の元データは、実際使うデータであっても、新たにデータ分割したものであっても、オーバーフィッティングのリスクは存在する。
|
8
8
|
|
9
9
|
- 大切なのは、目的変数の情報を特徴量選択に入れないこと。
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
ただし、これは、オーバーフィッティングに着目した考え方の原理ですので、「目的変数の情報を特徴量選択に入れること」を否定するものではありません。オーバーフィッティングのリスクを考慮して、汎化性能を見てマズそうなら別の手法に変えましょう、くらいなニュアンスと思います。実際、サンプルコードとしては、目的変数の情報を特徴量選択に入れる方法の1種であるEmedded Methodとして、決定木による重要度を使っている例が多いようです。
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
また、特徴量選択の際に、どこまでのデータを利用するのかは、様々な流儀があるようです。必ずしもout-of-Foldで検証するべきとは限らず、実際の学習と同じテストデータをそのまま使うことが多いです。サンプルコードも単純にx-train, y-trainそのまま使っている例が多いです。この理由としては、特徴量選択という行為は、本質的にはモデルを単純化して、バリアンスを減らす方向に働くため、オーバーフィッティングのリスクは他の最適化より少ないため、と考えます。なお、書籍「Kaggleで勝つデータ分析」では「理想的にはout-of-Foldで検証することが望ましい」と記載されており、逆に言えば、多くの場合はそうしていない、ということを表現しています。
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
一方、ハイパーパラメータチューニングの際は、行為そのものがバリアンスを増やすリスクがあります。よって、kfoldといった手法で、out-of-Foldで検証すべきでしょう。サンプルコードでもそうなっている例が多いようです。
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
特徴量生成〜選択〜ハイパーパラメータ最適化の一連の流れについては、「[特徴量生成、特徴量選択、ハイパーパラメータのチューニングを自動化するライブラリを使ってみた](https://dev.classmethod.jp/articles/yoshim-featuretools-boruta-optuna/)」も参考になります。
|