2015-07-27 6 views
1

Пытается создать кривую ROC.Scikit ROC auc повышает ValueError: только один класс присутствует в y_true. Показатель ROC AUC не определяется в этом случае

model = RandomForestClassifier(500, n_jobs = -1); 
model.fit(X_train, y_train) 
y_pred = model.predict(X_test) 

probas = model.predict_proba(X_test)[:, 1] 
precision = metrics.precision_score(y_test, y_pred) # returns 0.72 

recall = metrics.recall_score(y_test.values, y_pred) # returns 0.35 
y_test.shape           # (39257, 1) 

auc = metrics.roc_auc_score(y_test, probas)   # fails. 

ValueError: Только один класс присутствует в y_true. В этом случае оценка ROC AUC не определяется.

ответ

4

Законченное отвечая на мой собственный вопрос:

импортировал y_test как панд DataFrame вместо серии (спасшего его с помощью to_csv и импортируемого в другом месте с from_csv).

Этот путаный scikit на кривых ROC, но кажется, что он доволен этим во всем остальном.

Я оставлю это здесь в (маловероятном) случае, когда кто-то сталкивается с тем же.