使用Stanford分类器,可以通过设置属性文件中的选项来使用交叉验证,例如10倍交叉验证:
crossValidationFolds=10
printCrossValidationDecisions=true
shuffleTrainingData=true
shuffleSeed=1
运行该程序将按倍数输出各种指标,如精度、召回率、精度/微观平均F1和宏观平均F1。
作为输出的一部分,是否可以选择获得所有10精度/微观平均F1或所有10宏观平均F1的平均或聚合分数?
在Weka中,默认情况下,10倍交叉验证后的输出包括所有折叠的平均度量。斯坦福分类器中也有这样的选项吗?有一个最终的精度、召回率或F1分数可用,并像在Weka中那样优化参数是非常有用的,我想用斯坦福分类器来做这件事。怎样
当我运行10个折叠时,我看到的是输出。当我运行这个命令时:
java -cp "*" edu.stanford.nlp.classify.ColumnDataClassifier -prop examples/cheese2007.prop -crossValidationFolds 10
我在输出中看到了这一点(##Fold 9之后)
[main] INFO edu.stanford.nlp.classify.ColumnDataClassifier - 181 examples in test set
[main] INFO edu.stanford.nlp.classify.ColumnDataClassifier - Cls 2: TP=109 FN=6 FP=7 TN=59; Acc 0.928 P 0.940 R 0.948 F1 0.944
[main] INFO edu.stanford.nlp.classify.ColumnDataClassifier - Cls 1: TP=59 FN=7 FP=6 TN=109; Acc 0.928 P 0.908 R 0.894 F1 0.901
[main] INFO edu.stanford.nlp.classify.ColumnDataClassifier - Accuracy/micro-averaged F1: 0.92818
[main] INFO edu.stanford.nlp.classify.ColumnDataClassifier - Macro-averaged F1: 0.92224
[main] INFO edu.stanford.nlp.classify.ColumnDataClassifier - Average accuracy/micro-averaged F1: 0.93429
[main] INFO edu.stanford.nlp.classify.ColumnDataClassifier - Average macro-averaged F1: 0.92247