2024-10-02 08:30:27 发布
网友
我知道支持向量机算法不计算概率,这是找到AUC值所需要的,有没有其他方法只找到AUC分数
from sklearn.svm import SVC model_ksvm = SVC(kernel = 'rbf', random_state = 0) model_ksvm.fit(X_train, y_train) model_ksvm.predict_proba(X_test)
我无法从SVM算法中获得概率输出,没有概率输出,我无法获得AUC分数,这可以通过其他算法获得
对于ROC,你并不需要概率,只需要任何一种信心分数。您需要根据样本在阳性类别中的可能性对样本进行排序。支持向量机可以使用从分离平面到分离平面的(有符号)距离来实现这一目的,事实上sklearn在使用AUC评分时会在引擎盖下自动进行此操作:它使用decision_function方法,即有符号距离
sklearn
decision_function
您还可以在SVC(docs)中设置probability选项,该选项适合SVM顶部的Platt校准模型,以产生概率输出:
probability
model_ksvm = SVC(kernel='rbf', probability=True, random_state=0)
但这将导致相同的AUC,因为普拉特校准只是将符号距离单调地映射到概率
对于ROC,你并不需要概率,只需要任何一种信心分数。您需要根据样本在阳性类别中的可能性对样本进行排序。支持向量机可以使用从分离平面到分离平面的(有符号)距离来实现这一目的,事实上
sklearn
在使用AUC评分时会在引擎盖下自动进行此操作:它使用decision_function
方法,即有符号距离您还可以在SVC(docs)中设置
probability
选项,该选项适合SVM顶部的Platt校准模型,以产生概率输出:但这将导致相同的AUC,因为普拉特校准只是将符号距离单调地映射到概率
相关问题 更多 >
编程相关推荐