モデル作成と特徴量重要度について

前提

現在、Pythonにおいて住宅価格予測のようなモデル作成に取り組んでおります。
(実際は住宅価格ではなく別の価格予測モデルの作成に取り組んでおります。)
普段、IT業界に身を置いていないため、下記の方法が正しいのかどうかわからずにいます。

質問内容

モデルを作成した後に特徴量重要度により特徴量の貢献度を見ることが一般的だと思います。
現在、LightGBMを用いて予測モデルを作成している途中です。
しかし、特徴量が700以上存在するため、モデルが過学習を起こしており、調整済み決定係数が1.0という値になってしまいます。
そこで、特徴量重要度を見てみて、上位10〜20個の特徴量を用いて再度予測モデル作成を試みようと思うのですが、このやり方は正しいでしょうか?

ChatGPTとのやりとり

ChatGPTに上記の内容を聞いてみたのですが、信じていいのかどうか不安のため質問させていただきました。
以下は、ChatGPTとのやりとりの内容です。

【質問】
モデルを作成した後にモデルが過学習を起こしていることがわかったとする。そこで、特徴量重要度を見て、その上位10個を用いて改めてモデルを作成しようと思う。このやり方は正しい?

【回答】
はい、その方法は一般的に良いアプローチです。モデルが過学習している場合、過剰に複雑なモデルがトレーニングデータに適応しすぎ、新しいデータに対してはうまく汎化できない可能性があります。

特徴量重要度を基にして、最も影響を与えていると考えられる特徴量のみを使用することで、モデルの複雑性を低減し、過学習のリスクを軽減できます。ただし、以下の点に留意すると良いでしょう:

1.特徴量の選択のバランス:
選択された特徴量がターゲット変数との関連性を持っていることを確認してください。
10個の特徴量が十分な情報を提供できることが望ましいですが、モデルの性能がそれに依存するかどうかを確認します。

2.交差検証を使用する:
トレーニングデータセットとは異なるデータでモデルを評価するために、交差検証を使用することが重要です。
選択した特徴量が異なるデータにおいても有効であるかどうかを確認します。

3.過学習の監視:
モデルのトレーニングと検証のパフォーマンスを監視し、モデルが引き続き過学習していないかどうかを確認してください。

このアプローチは、モデルの複雑性をコントロールし、適切な特徴量を選択する手段の一環として非常に有用です。

最後に

わかりづらい質問内容だったら申し訳ありません。
何卒よろしくお願いいたします。

コメントを投稿

0 コメント