【发布时间】:2019-11-09 01:47:48
【问题描述】:
我正在使用 RandomForestClassifier,如下所示,使用交叉验证进行二进制分类(类标签为 0 和 1)。
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import StratifiedKFold, cross_val_score
clf=RandomForestClassifier(random_state = 42, class_weight="balanced")
k_fold = StratifiedKFold(n_splits=10, shuffle=True, random_state=0)
accuracy = cross_val_score(clf, X, y, cv=k_fold, scoring = 'accuracy')
print("Accuracy: " + str(round(100*accuracy.mean(), 2)) + "%")
f1 = cross_val_score(clf, X, y, cv=k_fold, scoring = 'f1_weighted')
print("F Measure: " + str(round(100*f1.mean(), 2)) + "%")
现在我想使用1 类的预测概率和cross validation 结果对我的数据进行排序。为此,我尝试了以下两种方法。
pred = clf.predict_proba(X)[:,1]
print(pred)
probs = clf.predict_proba(X)
best_n = np.argsort(probs, axis=1)[:,-6:]
我收到以下错误
NotFittedError:此 RandomForestClassifier 实例未拟合 然而。在使用此方法之前,使用适当的参数调用“fit”。
对于这两种情况。
我只是想知道我哪里做错了。
如果需要,我很乐意提供更多详细信息。
【问题讨论】:
标签: python scikit-learn random-forest cross-validation