如何通过Opeface生成的数据数组“ reps.csv”和“ labels.csv”评估SVM分类器?
关于代码和参数:
var FacesNum;
OpenFace提取一张人脸的积分,因此我将为每个人脸分配一个整数[128]数组,因此,如果我还有一个人脸,我将拥有一个数组[FacesNum] [128],依此类推。这将是我的X。它还会生成另一个带有面部编号及其文件名的数组[FacesNum] [2]。那是我的。
使用LabelEncoder()和Openface的创建者来获取信息。 PS:对于y,数组从1开始。
X = embeddings
y = labelsNum
cv = StratifiedKFold (y, n_folds = 5)
classifier = svm.SVC (kernel = 'linear', probability = True,
random_state = random_state)
mean_tpr = 0.0
mean_fpr = np.linspace (0, 1, 100)
all_tpr = []
for i (train, test) in enumerate (cv):
probas_ = classifier.fit (X [train] and [train]). predict_proba (X [test])
fpr, tpr, thresholds = roc_curve (and [test] .ravel (), probas_ [:, 1])
mean_tpr + = interp (mean_fpr, fpr, tpr)
mean_tpr [0] = 0.0
roc_auc = auc (fpr, tpr)
我正在尝试使用Scikit-Learn lib 0.17中的“带有交叉验证的接收器工作特性(ROC)”。
但我收到此错误
raise ValueError (" Data is not binary and pos_label is not specified ")
for
我想做什么是可能的?