对多类使用parfit/bestFit

2024-06-11 19:33:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用parfit包bestFit进行二进制/多类(train_labels_ALL为0和1或0,1,2,3,4)分类。它可以很好地用于二进制情况,但对于多个情况,我没有让它运行。 我使用以下函数调用最佳拟合函数:

best_model, best_score, all_models, all_scores = bestFit(svm.SVC(), paramGrid,
                                        train_features_ALL_svc_stand, train_labels_ALL, nfolds=5, # [optional, instead of validation set]
                                        metric=roc_auc_score, greater_is_better=True)#, 

对于从sklearn使用的度量:


def roc_auc_score(y_true, y_score, average="macro", sample_weight=None,
                  max_fpr=None, multi_class="raise", labels=None):

当我为函数中的多类分类手动将“raise”更改为“ovr”时,我会收到一条错误消息,即y不需要1D数组。因此,我将1D数组更改为(n_个样本,n_个类)。 然后我收到:

ValueError: Supported target types are: ('binary', 'multiclass'). Got 'multiclass-multioutput' instead.

我想,我必须将多类标签更改为(n_示例,n_类)的形式,但这仍然应该只是一个多类问题

有没有一个连续的y_标签也能做到这一点


Tags: 函数nonelabels二进制分类情况trainall