ランダム状態は調整するパラメーターですか?


9

私の実験で頻繁に発生する問題は、アルゴリズムのランダムな状態が変更されるとモデルのパフォーマンスが変化することです。質問は簡単です。ランダムな状態をハイパーパラメータとしてとるべきですか?何故ですか?モデルが異なるランダム状態で他のモデルよりも優れている場合、モデルを特定のランダム状態に適合しすぎていると見なす必要がありますか?

sklearnの決定木のログ:(random_rateはランダムな状態である必要があります) sklearnの決定木のログ


最新の計算能力により、エッジケースの結果をもたらすシードを特定することが可能です。あなたが研究者で実験を行ったが、結果が思い通りに機能していないとしましょう。何百万もの種子に対して実験を実行して、どの種子があなたが探しているストーリーを語っているかを確認するのは非常に簡単です。常に使用する固定シードを用意するのが最善です。あなたを正直に保ちます!
Brandon Bertelsen、

回答:


5

いいえ、できません。

ハイパーパラメータは、アルゴリズムの動作の高レベルな側面を制御する変数です。通常のパラメータとは異なり、ハイパーパラメータはアルゴリズム自体によってトレーニングデータから自動的に学習することはできません。このため、経験豊富なユーザーは、直感、ドメイン知識、およびハイパーパラメーター(存在する場合)の意味上の意味に基づいて適切な値を選択します。あるいは、検証セットを使用してハイパーパラメータ選択を実行することもできます。ここでは、母集団のサンプル(検証セット)でさまざまな候補値をテストして、データの母集団全体に最適なハイパーパラメーター値を見つけようとします。

ランダム状態に関しては、擬似乱数ジェネレータに渡されるランダムシードを決定するために、sklearnの多くのランダム化アルゴリズムで使用されます。したがって、アルゴリズムの動作には影響しません。後継者として、検証セットで適切に実行されたランダムな状態値は、新しい目に見えないテストセットで適切に実行される値に対応しません。実際、アルゴリズムによっては、トレーニングサンプルの順序を変更するだけで、まったく異なる結果が表示される場合があります。

ランダムな状態値をランダムに選択して、すべての実験に使用することをお勧めします。あるいは、ランダムな状態のランダムなセットに対するモデルの平均精度をとることもできます。

いずれにせよ、ランダムな状態を最適化しようとしないでください。これにより、楽観的に偏ったパフォーマンス測定値が確実に生成されます。


0

random_stateは何に影響しますか?トレーニングと検証セットの分割、または何?

それが最初のケースである場合、2つのランダムな状態の下で分割スキームの違いを見つけることを試みることができると思います。これにより、モデルにいくらかの直感が与えられる可能性があります(つまり、いくつかのデータでモデルをトレーニングするために機能する理由を探ることができます、トレーニング済みモデルを使用して一部の検証データを予測しますが、他の一部のデータでモデルをトレーニングし、他の一部の検証データを予測することはできません。それらは異なるように分布していますか?)このような分析により、直感が得られる場合があります。

ちなみに、私もこの問題に遭遇しました:)、そしてそれを理解していません。多分私たちはそれを調査するために協力することができます。

乾杯。


1
質問が理解できず、この回答も理解できません。
マイケルR.チェニック2018年

質問、あなたの場合のrandom_stateの使用法は何ですか?乱数を生成するためのシードとして使用されますか?
Janzen LIU 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.