Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scikit learn 一类支持向量机的性能评价_Scikit Learn_Svm - Fatal编程技术网

Scikit learn 一类支持向量机的性能评价

Scikit learn 一类支持向量机的性能评价,scikit-learn,svm,Scikit Learn,Svm,我一直在尝试评估我的单类SVM的性能。我曾尝试使用scikit learn绘制ROC曲线,结果有点奇怪 X_train, X_test = train_test_split(compressed_dataset,test_size = 0.5,random_state = 42) clf = OneClassSVM(nu=0.1,kernel = "rbf", gamma =0.1) y_score = clf.fit(X_train).decision_function(X_test) p

我一直在尝试评估我的单类SVM的性能。我曾尝试使用scikit learn绘制ROC曲线,结果有点奇怪

X_train, X_test = train_test_split(compressed_dataset,test_size = 0.5,random_state = 42)

clf = OneClassSVM(nu=0.1,kernel = "rbf", gamma =0.1)
y_score = clf.fit(X_train).decision_function(X_test)

pred = clf.predict(X_train)

fpr,tpr,thresholds = roc_curve(pred,y_score)
#绘制roc曲线

plt.figure()
plt.plot(fpr, tpr, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], 'k--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('ROC Curve')
plt.legend(loc="lower right")
plt.show()
我得到的ROC曲线:


有人能帮我解决这个问题吗?

这个情节有什么奇怪之处?您修复了一组nu和gamma,因此您的模型既不过度拟合,也不欠拟合。移动阈值(ROC变量)不会导致100%TPR。尝试使用高伽马和非常小的nu(这是训练误差的上限),您将获得更多“典型”图。

在我看来,获得分数:

pred_scores = clf.score_samples(X_train)

然后,在min-max归一化之前,需要对pred_分数进行min-max归一化

相关问题:如果我用不同的gamma绘制OCSVM分类器的真阳性率和假阳性率,这是RoC吗?也就是说,我有一个数据集,我通过改变超参数使用OCSVM对其进行分类。分类结果将产生TPR和FPR,对吗?绘制它们会得到RoC曲线吗?