CRFClassifier和ColumnDataClassifier中的l1reg选项默认使用OWLQNMinimizer,但它并未在公共发布版本中提供。我将此问题发布在了邮件群组中,Manning教授表示可以使用QNMinimizer来获得正则化功能。
l1reg
我成功地修改了ColumnDataClassifier中的代码,使l1reg正常工作。请问为什么官方发布版本中没有进行这个更改呢?
o4hqfura1#
你能在这里或者在pull request中贴出你是如何让它为ColumnDataClassifier工作的吗?我可以在这个更改上添加。我认为这只是一个疏忽,因为一些代码仍然期望OWLQNMinimizer的代码。
ColumnDataClassifier
OWLQNMinimizer
我对CRFClassifier的理解是,如果你使用useQN=true、useOWLQN=true和priorLambda=1.0(或者任何你想要的值),它会给你想要的效果。
useQN=true
useOWLQN=true
priorLambda=1.0
8dtrkrch2#
我评论了第1383行和第1472行,它们分别是Minimizer<DiffFunction> minim = ReflectionLoading.loadByReflection("edu.stanford.nlp.optimization.OWLQNMinimizer", globalFlags.l1reg);和Minimizer<DiffFunction> minim = new QNMinimizer(); ((QNMinimizer)minim).useOWLQN(true, globalFlags.l1reg);但这只是个临时解决方案。有很多地方使用了OWLQNMinimizer。例如,如果我们设置了useBinary,我们还需要更改LogisticClassifierFactory。
Minimizer<DiffFunction> minim = ReflectionLoading.loadByReflection("edu.stanford.nlp.optimization.OWLQNMinimizer", globalFlags.l1reg);
Minimizer<DiffFunction> minim = new QNMinimizer(); ((QNMinimizer)minim).useOWLQN(true, globalFlags.l1reg);
useBinary
LogisticClassifierFactory
p4rjhz4m3#
关于这个有任何更新吗?
3条答案
按热度按时间o4hqfura1#
你能在这里或者在pull request中贴出你是如何让它为
ColumnDataClassifier
工作的吗?我可以在这个更改上添加。我认为这只是一个疏忽,因为一些代码仍然期望OWLQNMinimizer
的代码。我对CRFClassifier的理解是,如果你使用
useQN=true
、useOWLQN=true
和priorLambda=1.0
(或者任何你想要的值),它会给你想要的效果。8dtrkrch2#
我评论了第1383行和第1472行,它们分别是
Minimizer<DiffFunction> minim = ReflectionLoading.loadByReflection("edu.stanford.nlp.optimization.OWLQNMinimizer", globalFlags.l1reg);
和
Minimizer<DiffFunction> minim = new QNMinimizer(); ((QNMinimizer)minim).useOWLQN(true, globalFlags.l1reg);
但这只是个临时解决方案。有很多地方使用了
OWLQNMinimizer
。例如,如果我们设置了useBinary
,我们还需要更改LogisticClassifierFactory
。p4rjhz4m3#
关于这个有任何更新吗?