在Python中使用SVM进行回归置信度分析
我在用Python做回归支持向量机(SVM),想知道有没有办法得到一个“置信度”值来衡量它的预测结果。
之前我用SVM做二分类的时候,可以通过“边际”计算出一个类似置信度的值。下面是一些伪代码,展示我是怎么得到这个置信度值的:
# Begin pseudo-code
import svm as svmlib
prob = svmlib.svm_problem(labels, data)
param = svmlib.svm_parameter(svm_type=svmlib.C_SVC, kernel_type = svmlib.RBF)
model = svmlib.svm_model(prob, param)
# get confidence
confidence = self.model.predict_values_raw(sample_to_classify)
我想,如果新的样本离训练数据越远,置信度就越低,但我在寻找一个函数,能够帮助我合理估算这个置信度。
我的问题大概是这样的:
- 我有一个函数F(x),其中x是一个高维向量
- F(x)可以计算出来,但速度很慢
- 我想训练一个回归SVM来近似这个函数
- 如果我能找到一些置信度低的'x'值,我就可以把这些点加进来,然后重新训练(也就是主动学习)
有没有人之前获得过或使用过回归SVM的置信度/边际值?
1 个回答
1
看看这个在一月份的StackOverflow上类似的回答。被选中的答案准确地指出了在非参数拟合方法中获取置信度测量有多困难。可能有一些贝叶斯的方法可以尝试,但在Python的SVM库中可能不太适用:在libsvm(python)中更偏向一个类别。