Roc_auc 给定 nan 的百分比计算
Roc_auc percentage calculation giving nan
我正在尝试计算我的数据的 ROC 分数,但结果为 nan。
代码:
scoring = 'roc_auc'
kfold= KFold(n_splits=10, random_state=42, shuffle=True)
model = LinearDiscriminantAnalysis()
results = cross_val_score(model, df_n, y, cv=kfold, scoring=scoring)
print("AUC: %.3f (%.3f)" % (results.mean(), results.std()))
df_n 是归一化值的数组,我也尝试使用数据集中的 X 数据值。
y 是一个二进制值数组。
df_n 形状:(150, 4)
y 形状:(150,)
我很难过,它应该有用!
问题是 roc_auc_score
期望概率而不是 multi-class 分类情况下的预测。但是,使用该代码,得分得到的是 predict
的输出。
使用新得分手:
from sklearn.metrics import roc_auc_score, make_scorer
multi_roc_scorer = make_scorer(lambda y_in, y_p_in: roc_auc_score(y_in, y_p_in, multi_class='ovr'), needs_proba=True)
scores = cross_validate(model, X_s, y_s, scoring=multi_roc_scorer, cv=cv, error_score="raise")
我正在尝试计算我的数据的 ROC 分数,但结果为 nan。
代码:
scoring = 'roc_auc'
kfold= KFold(n_splits=10, random_state=42, shuffle=True)
model = LinearDiscriminantAnalysis()
results = cross_val_score(model, df_n, y, cv=kfold, scoring=scoring)
print("AUC: %.3f (%.3f)" % (results.mean(), results.std()))
df_n 是归一化值的数组,我也尝试使用数据集中的 X 数据值。 y 是一个二进制值数组。
df_n 形状:(150, 4) y 形状:(150,)
我很难过,它应该有用!
问题是 roc_auc_score
期望概率而不是 multi-class 分类情况下的预测。但是,使用该代码,得分得到的是 predict
的输出。
使用新得分手:
from sklearn.metrics import roc_auc_score, make_scorer
multi_roc_scorer = make_scorer(lambda y_in, y_p_in: roc_auc_score(y_in, y_p_in, multi_class='ovr'), needs_proba=True)
scores = cross_validate(model, X_s, y_s, scoring=multi_roc_scorer, cv=cv, error_score="raise")