SKLearn和Weka中Random Forest对相同数据分类结果不一致的问题(没有完全解决)

这个问题真的很郁闷,我一直觉得SKLearn在输出的分类效果上比不上Weka,可是最近一个实验无奈必须要使用SKLearn。我选择一致的训练和测试数据,结果Weka和SKLearn的结果分别如下:

Precision: 0.8070175438596491
Recall: 0.7479674796747967
F-measure: 0.7763713080168777
AUC: 0.8878430730616031

和:

Precision=0.8173076923076923
Recall=0.6910569105691057
Fmeasure=0.7488986784140969
AUC=0.7817700660228079

都用的是默认参数。以为是参数选择的问题,想仔细对比一下文档。SKLearn的Random Forest的文档在这里:http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html#sklearn.ensemble.RandomForestClassifier,Weka的相应文档在:http://weka.sourceforge.net/doc.dev/weka/classifiers/trees/RandomForest.html,并且从Weka的GUI中可以看到,Random Forest的默认参数是:

仔细对比了一下,似乎和SKLearn中也只有“minimum number of instances per leaf(M)”和“min_samples_leaf”可以对应起来。真的觉得很奇怪。搜索了一下,发现在StackOverflow上有网友介绍了AUC不一致情况下的问题:

https://stackoverflow.com/questions/14936091/why-does-weka-randomforest-gives-me-a-different-result-than-scikit-randomforestc

但是这样的方法还是不能解决F-measure等不同的问题,真是很奇怪!

你可能感兴趣的:(论文点评)