В настоящее время я пытаюсь построить кривую ROC для модели LinearSVC
.Поскольку LinearSVC
модели могут вызывать decision_function()
только для вычисления y_score (в отличие от обычного predict_proba()
), я считаю трудным вычислить fpr
и tpr
для каждого класса.При попытке
for i in range(n_classes):
fpr[i], tpr[i], _ = roc_curve(y_test[:, i], y_score[:, i])
roc_auc[i] = auc(fpr[i], tpr[i])
получаю IndexError: too many indices for array
.Переключение на решение, представленное в , в этом ответе будет означать бинаризацию меток, чего я бы хотел избежать.Обычная модель SVC
с линейным ядром не позволила бы мне установить штраф l1 для выбора объектов на основе l1, поэтому этого также следует избегать.
Есть идеи, как это решить?