0

嗨,我想结合火车/测试拆分与交叉验证,并在auc中得到结果。如何使用scikit得到结果auc

我的第一个方法是我得到它,但具有准确性。

# split data into train+validation set and test set 
X_trainval, X_test, y_trainval, y_test = train_test_split(dataset.data, dataset.target) 
# split train+validation set into training and validation sets 
X_train, X_valid, y_train, y_valid = train_test_split(X_trainval, y_trainval) 
# train on classifier 
clf.fit(X_train, y_train) 
# evaluate the classifier on the test set 
score = svm.score(X_valid, y_valid) 
# combined training & validation set and evaluate it on the test set 
clf.fit(X_trainval, y_trainval) 
test_score = svm.score(X_test, y_test) 

而我不知道如何应用roc_auc,请帮助。

+0

您的数据中有多少类? – ginge

+0

嗨ginge,我有两个班0-1 – xav

回答

0

使用scikit学习,你可以这样做:

import numpy as np 
from sklearn import metrics 
y = np.array([1, 1, 2, 2]) 
scores = np.array([0.1, 0.4, 0.35, 0.8]) 
fpr, tpr, thresholds = metrics.roc_curve(y, scores, pos_label=2) 

现在,我们得到:

print(fpr) 

阵列([0,0.5,0.5,1])

print(tpr) 

array([0.5,0.5,1,1,1])

print(thresholds) 

数组([0.8,0.4,0.35,0.1])