ShifuML / shifu

An end-to-end machine learning and data mining framework on Hadoop
https://github.com/ShifuML/shifu/wiki
Apache License 2.0
252 stars 109 forks source link

Strategy change on early stop. #670

Closed wuhaifengdhu closed 4 years ago

wuhaifengdhu commented 5 years ago

Screen Shot 2019-08-09 at 4 07 48 PM Origin early stop don't early.

wuhaifengdhu commented 5 years ago

@zhangpengshan Fixed issue: https://github.com/ShifuML/shifu/issues/671 Feature: Add NotNull support for ModelConfigMeta.

If user set null value for NotNull field in ModelConfig, it will not passed the validation.

Screen Shot 2019-08-11 at 1 14 43 PM
huzza commented 5 years ago

@wuhaifengdhu could you let me know, why you change to 0.1? Is it because the example you provided?

wuhaifengdhu commented 5 years ago

@wuhaifengdhu could you let me know, why you change to 0.1? Is it because of the example you provided?

Hi Zhanghao, I changed from 0.1 to 0.01, a more small value than the origin.

For early stop, we have two strategies, one is the minimal epochs, and the other is evaluated by the training/evaluated error. And the second strategy mainly features for an early stop. In the common case, if the user enables early stop, they may set a very large 'numTrainEpochs'. Due to the first strategy, even the second strategy is active, but it still needs to wait for 0.1 * 'numTrainEpochs' to stop.

So I changed to a more small value: 0.01.

And this PR also included with another feature, that's a new type "notNull" for model config meta. If fields set this to be true(default false), then the user must provide this value, or it can not pass the config validate the process. This is to fix bug https://github.com/ShifuML/shifu/issues/671