【问题标题】:Why SKlearn and WEKA results do not match?为什么 SKlearn 和 WEKA 结果不匹配?
【发布时间】:2018-07-14 05:07:08
【问题描述】:

我有这个dataset,我正在使用 SKlearn 生成如下随机森林模型:

from sklearn.ensemble import RandomForestClassifier as RandomForest
from sklearn.cross_validation import cross_val_score, cross_val_predict
import pandas as pd
import numpy as np
df = pd.read_csv('trainingSetExample.csv')
X_train = df.iloc[:, df.columns != 'label']
y_train = df.ix[:]['label']
clf = RandomForest() 
print np.mean(cross_val_score(clf, X_train, y_train, cv=10))
print 'precision', np.mean(cross_val_score(clf, X_train, y_train, cv=10, scoring='precision_macro'))

准确率和精度都是 0.99,但是当我使用 WEKA 随机森林时,准确率和精度都是 0.95。看起来两者的参数默认值是一样的,另外,我尝试了 WEKA 的 10000 次迭代而不是 100 次,但并没有改善。

为什么结果如此不同?

【问题讨论】:

  • 你也应该贴出Weka的完整代码以及两者使用的数据。

标签: python machine-learning scikit-learn weka random-forest


【解决方案1】:

我发现错误是什么,标签被错误地包含在特征中,所以 SKlearn 总是报告高准确率(接近 1),但 WEKA 足够聪明,可以删除该特征并报告实际准确率。删除该列后,它们都匹配。

【讨论】:

    猜你喜欢
    • 2013-11-13
    • 2021-12-26
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 2018-02-25
    • 2014-12-05
    • 2016-01-03
    相关资源
    最近更新 更多