2016-10-11 20 views
0

scikit-learnでは、Cは正則化強度の逆数(link)です。 3つの異なるC(すなわち、0.1,1.0、および10.0)を使用していることを除いて、同じパラメータおよび条件で3回のトレーニングを手動で計算しました。私は、検証セットのFスコアを比較して、「最良の」Cを特定しました。しかし、誰かが、Cを最適化するために検証セットを使用するはずがないので、これが間違っていると私に言った。そして、私がscikit-learnからデフォルトのC(= 1.0)を選ぶ場合、私はどのような正当性を持っていますか?pythonのロジスティック回帰における正則化パラメータの発見方法scikit-learn?

答えて

1

正しいCを選択するにはどうすればよいですか?

トレーニング、検証、テストの3つのデータセットが用意されています。列車でトレーニングし、検証時にハイパーパラメータを設定し、最後にテストで評価します。特に、データが小さい場合は、k-fold CV方式でこれを行うことができます。ここでは、最初にCVを列車試験の分割に使用し、さらに別の列を実際の列車と検証に分割します。

scikit-learnからデフォルトのC(= 1.0)を選択するとどういう正当性がありますか?

任意の事前重み付けを行うこと以外に正当性はありません(したがって、他の値も同様に正当化されます)。

+0

Cがテストセットのパフォーマンスに基づいて選択される状況では、これは過適合の例ですか?私はなぜそれが悪い考えであるか理解しようとしています。 – KubiK888

+0

これは** overfittingの** example **ではなく、** invalid estimator **の例です。このような方法で選択されたモデルを信頼することはできません。この意味での過大評価と関連していますが、その問題はより深刻です。単純にデータを使用して**モデルに関する**決定を下すだけでなく、その評価も - 評価は**です偏ってしまい、結果的に役に立たない。 – lejlot

関連する問題