ValueError:不支持未知格式:ROC 曲线

Kha*_*lam 1 python numpy python-3.x pandas scikit-learn

我刚刚将 python 版本从 3.5 更新到 3.7,在构建 ROC 曲线时出现错误。我没有更改代码中的任何内容,但它给出了一些未知错误

代码

# ROC Curve

from sklearn.metrics import confusion_matrix, accuracy_score, roc_auc_score, roc_curve
y_pred_proba = predictions[::, 1]
print("y_pred_proba", y_pred_proba)
print("y_test", y_test)

fpr, tpr, _ = roc_curve(y_test, y_pred_proba)
auc = roc_auc_score(y_test, y_pred_proba)

plt.figure(figsize=(7, 3))
Run Code Online (Sandbox Code Playgroud)

价值观

y_pred_proba [0.1746994 0.22792926 0.60020134 0.60857445 0.38630289 0.16318228 0.20503542 0.76781874 0.89951127 0.13657112 0.36836385 0.23833946 0.43924601 0.9874083 0.98404103 0.1003149 0.94596688 0.36480605 0.48716601 0.04158647 0.8624937 0.93881636 0.54065999 0.38538261 0.48002784 0.9874083 0.76781874 0.95791353 0.48002784 0.2448756 0.98404103 0.06473023 0.34080482 0.11897602 0.07883822 0.08000581 0.38630289 0.2546955 0.95515939 0.47123327 0.93544655 0.52027235 0.23231433 0.45185196 0.78456432 0.92415415 0.22408711 0.82322069 0.12670252 0.50150037 0.2546955 0.93881636 0.33043862 0.52027235 0.07964735 0.11961717 0.79551265 0.0378607 0.34080482 0.87 411928 0.85397911 0.9874083 0.18885285 0.93140091 0.87411928 0.52027235 0.48716601 0.19411124 0.06473023 0.79551265 0.7678187 4 0.81180605 0.06833817 0.45406719 0.54006639 0.48002784 0.12468554 0.38630289 0.18068918 0.9874083 0.79551265 0.43924601 0.8 6979492 0.15120609 0.56046085 0.27958234 0.50261158 0.23231433 0.42496329 0.98404103 0.93881636 0.96244002 0.38049589 0.98740 83 0.38354959 0.8624937 0.48716601 0.89951127 0.98404103 0.37245044 0.38630289 0.49835809 0.9874083 0.27773467 0.98404103 0.40968608 0.3587635 0.1003149 0.2572435 0.5249 2011年0.19933781 0.38538261 0.24401876 0.06473023 0.82322069]

y_test [1 0 1 0 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 01]

Traceback (most recent call last):
  File "/home/khawar/deepface/tests/Ensemble-Face-Recognition.py", line 897, in <module>
    fpr, tpr, _ = roc_curve(y_test, y_pred_proba)
  File "/home/khawar/.local/lib/python3.6/site-packages/sklearn/utils/validation.py", line 72, in inner_f
    return f(**kwargs)
  File "/home/khawar/.local/lib/python3.6/site-packages/sklearn/metrics/_ranking.py", line 776, in roc_curve
    y_true, y_score, pos_label=pos_label, sample_weight=sample_weight)
  File "/home/khawar/.local/lib/python3.6/site-packages/sklearn/metrics/_ranking.py", line 539, in _binary_clf_curve
    raise ValueError("{0} format is not supported".format(y_type))
ValueError: unknown format is not supported
Run Code Online (Sandbox Code Playgroud)

Kha*_*lam 5

如果我们打印该值,则type_of_target(y_test)输出值是“未知”。现在,我们必须将未知数更改为整数。所以我们会这样做

y_test = y_test.astype(int)
Run Code Online (Sandbox Code Playgroud)

总体代码

from sklearn.metrics import confusion_matrix, accuracy_score, roc_auc_score, roc_curve

y_pred_proba = predictions[::, 1]
y_test = y_test.astype(int)


fpr, tpr, _ = roc_curve(y_test, y_pred_proba)
auc = roc_auc_score(y_test, y_pred_proba)

plt.figure(figsize=(7, 3))
Run Code Online (Sandbox Code Playgroud)