私の実験で頻繁に発生する問題は、アルゴリズムのランダムな状態が変更されるとモデルのパフォーマンスが変化することです。質問は簡単です。ランダムな状態をハイパーパラメータとしてとるべきですか?何故ですか?モデルが異なるランダム状態で他のモデルよりも優れている場合、モデルを特定のランダム状態に適合しすぎていると見なす必要がありますか?
私の実験で頻繁に発生する問題は、アルゴリズムのランダムな状態が変更されるとモデルのパフォーマンスが変化することです。質問は簡単です。ランダムな状態をハイパーパラメータとしてとるべきですか?何故ですか?モデルが異なるランダム状態で他のモデルよりも優れている場合、モデルを特定のランダム状態に適合しすぎていると見なす必要がありますか?
回答:
いいえ、できません。
ハイパーパラメータは、アルゴリズムの動作の高レベルな側面を制御する変数です。通常のパラメータとは異なり、ハイパーパラメータはアルゴリズム自体によってトレーニングデータから自動的に学習することはできません。このため、経験豊富なユーザーは、直感、ドメイン知識、およびハイパーパラメーター(存在する場合)の意味上の意味に基づいて適切な値を選択します。あるいは、検証セットを使用してハイパーパラメータ選択を実行することもできます。ここでは、母集団のサンプル(検証セット)でさまざまな候補値をテストして、データの母集団全体に最適なハイパーパラメーター値を見つけようとします。
ランダム状態に関しては、擬似乱数ジェネレータに渡されるランダムシードを決定するために、sklearnの多くのランダム化アルゴリズムで使用されます。したがって、アルゴリズムの動作には影響しません。後継者として、検証セットで適切に実行されたランダムな状態値は、新しい目に見えないテストセットで適切に実行される値に対応しません。実際、アルゴリズムによっては、トレーニングサンプルの順序を変更するだけで、まったく異なる結果が表示される場合があります。
ランダムな状態値をランダムに選択して、すべての実験に使用することをお勧めします。あるいは、ランダムな状態のランダムなセットに対するモデルの平均精度をとることもできます。
いずれにせよ、ランダムな状態を最適化しようとしないでください。これにより、楽観的に偏ったパフォーマンス測定値が確実に生成されます。
random_stateは何に影響しますか?トレーニングと検証セットの分割、または何?
それが最初のケースである場合、2つのランダムな状態の下で分割スキームの違いを見つけることを試みることができると思います。これにより、モデルにいくらかの直感が与えられる可能性があります(つまり、いくつかのデータでモデルをトレーニングするために機能する理由を探ることができます、トレーニング済みモデルを使用して一部の検証データを予測しますが、他の一部のデータでモデルをトレーニングし、他の一部の検証データを予測することはできません。それらは異なるように分布していますか?)このような分析により、直感が得られる場合があります。
ちなみに、私もこの問題に遭遇しました:)、そしてそれを理解していません。多分私たちはそれを調査するために協力することができます。
乾杯。