我有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次,并没有改善。
为什么结果差异很大?
答案 0 :(得分:0)
我发现了什么是错误,标签被错误地包含在功能中,所以SKlearn总是报告高精度(接近1),但WEKA足够智能去除该功能并报告实际的准确性。删除该列后,它们都匹配。