gpt4 book ai didi

pandas - 如何对多类数据进行交叉验证?

转载 作者:行者123 更新时间:2023-12-05 05:19:58 25 4
gpt4 key购买 nike

我能够使用以下方法对二进制数据进行交叉验证,但它似乎不适用于多类数据:

> cross_validation.cross_val_score(alg, X, y, cv=cv_folds, scoring='roc_auc')

/home/ubuntu/anaconda3/lib/python3.6/site-packages/sklearn/metrics/scorer.py in __call__(self, clf, X, y, sample_weight)
169 y_type = type_of_target(y)
170 if y_type not in ("binary", "multilabel-indicator"):
--> 171 raise ValueError("{0} format is not supported".format(y_type))
172
173 if is_regressor(clf):

ValueError: multiclass format is not supported

> y.head()

0 10
1 6
2 12
3 6
4 10
Name: rank, dtype: int64

> type(y)

pandas.core.series.Series

我也尝试将 roc_auc 更改为 f1 但仍然有错误:

/home/ubuntu/anaconda3/lib/python3.6/site-packages/sklearn/metrics/classification.py in precision_recall_fscore_support(y_true, y_pred, beta, labels, pos_label, average, warn_for, sample_weight)
1016 else:
1017 raise ValueError("Target is %s but average='binary'. Please "
-> 1018 "choose another average setting." % y_type)
1019 elif pos_label not in (None, 1):
1020 warnings.warn("Note that pos_label (set to %r) is ignored when "

ValueError: Target is multiclass but average='binary'. Please choose another average setting.

有什么方法可以用来对这种类型的数据进行交叉验证吗?

最佳答案

正如 Vivek Kumar 的评论中指出的那样sklearn 指标支持 F1 score 的多类平均和 ROC computations ,尽管在数据不平衡时有一些限制。因此,您可以使用相应的 average 参数手动构建记分器,或使用其中一个预定义参数(例如:“f1_micro”、“f1_macro”、“f1_weighted”)。

如果需要多个分数,则使用 cross_validate 代替 cross_val_score(自 sklearn 0.19 起在 sklearn.model_selection 模块中可用)。

关于pandas - 如何对多类数据进行交叉验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45415339/

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