2017-10-07 87 views
0

私は、scikit-learn MLPRegressorを使って教師付き学習をやろうとしています。教師あり学習の時代の数がどのように活用されているかを知りたい。scikit-learn mlpregressorでエポックの数を設定する方法は?

しかし、ときに私はこのようにMLPを設定:予測スコアは同じまま

mlp = MLPRegressor(max_iter=500, learning_rate_init=0.1) 

mlp = MLPRegressor(max_iter=100, learning_rate_init=0.1) 

してから、この:

mlp = MLPRegressor(max_iter=200, learning_rate_init=0.1) 

してから、この。 max_iterの数を変更しても予測スコアが一定であるため、max_iterを使用してエポックの数を設定するのが正しいかどうかわかりません。 しかし、私が学習率を変えると、得点が変わり、学習率のいくつかの活用があります。

誰でも手助けできますか?ありがとう

答えて

2

max_iterを使用して実際にエポックの数を制限する正しい方法です。

max_iterMLPRegressorの文書からはint型、オプション、反復の200 最大数をデフォルト。ソルバーは、収束( 'tol'で決定)またはこの繰り返し回数まで反復します。確率的ソルバ( 'sgd'、 'adam')については、これによって勾配ステップの数ではなく、エポックの数(各データポイントが何回使用されるか)が決定されることに注意してください。

2回の繰り返しの間にコストがtol未満を変更したときに、その実装もtolパラメータに対する収束チェックがあることに注意してくださいは、すなわち、学習を停止します。 tolは、デフォルトで0.0001(10e-4)に設定されています。これは、ユースケース/トレーニングデータの許容範囲が大きすぎる場合とそうでない場合があります。

場合によっては、100回の反復(max_iter=100)の前にこの精度に達しているようです。

+0

情報ありがとうございます。私の場合、10,20,30回の変更でさえ変化しません。 100回、500回、または1000回の反復と同じままです – sang

関連する問題