gpt4 book ai didi

python - 使用 scikit RandomForestClassifier 的平均降低精度使用哪个精度分数

转载 作者:行者123 更新时间:2023-11-28 16:31:37 25 4
gpt4 key购买 nike

我一直在运行此 website 上显示的“平均降低精度”度量的实现:

在示例中,作者使用的是随机森林回归器 RandomForestRegressor,但我使用的是随机森林分类器 RandomForestClassifier。因此,我的问题是,我是否还应该使用 r2_score 来测量准确度,或者我是否应该切换到经典准确度 accuracy_score 或 matthews 相关系数 matthews_corrcoef?。

如果我应该切换或不切换,有人在这里吗?为什么?

感谢您的帮助!


这是网站上的代码,以防您懒得点击 :)

from sklearn.cross_validation import ShuffleSplit
from sklearn.metrics import r2_score
from collections import defaultdict

X = boston["data"]
Y = boston["target"]

rf = RandomForestRegressor()
scores = defaultdict(list)

#crossvalidate the scores on a number of different random splits of the data
for train_idx, test_idx in ShuffleSplit(len(X), 100, .3):
X_train, X_test = X[train_idx], X[test_idx]
Y_train, Y_test = Y[train_idx], Y[test_idx]
r = rf.fit(X_train, Y_train)
acc = r2_score(Y_test, rf.predict(X_test))
for i in range(X.shape[1]):
X_t = X_test.copy()
np.random.shuffle(X_t[:, i])
shuff_acc = r2_score(Y_test, rf.predict(X_t))
scores[names[i]].append((acc-shuff_acc)/acc)
print "Features sorted by their score:"
print sorted([(round(np.mean(score), 4), feat) for
feat, score in scores.items()], reverse=True)

最佳答案

r2_score 用于回归(连续响应变量),而经典分类(离散分类变量)指标如 accuracy_scoref1_score roc_auc(如果您的 y 标签不平衡,最后两个最合适)是您任务的正确选择。

随机打乱输入数据矩阵中的每个特征并测量这些分类指标的下降情况听起来像是对特征重要性进行排序的有效方法。

关于python - 使用 scikit RandomForestClassifier 的平均降低精度使用哪个精度分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31343563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com