怎么理解platt scaling?

  统计/机器学习 监督式学习    浏览次数:7194        分享
3

大家好,我对platt scaling不是很理解,大概知道是SVM里用得到概率输出的方法。

具体应该怎么理解platt scaling?

 

小老虎   2018-12-16 11:19



   2个回答 
16

platt's scaling本质上就是利用一个逻辑回归将SVM的输出值映射为概率。

因为SVM的输出值是样本和决策边界的距离而非概率,输出值大于0是正样本,输出值小于0是负样本。

platt's scaling就利用这个输出值作为样本的特征,再利用样本的标签,训练一个一维数据的逻辑回归。这个逻辑回归的最后输出的概率值就是platt's scaling后的预测概率。

假设第$i$个样本的特征为$X_i$,SVM的决策函数的输出结果为$f(X_i)$,那么platt's scaling之后预测这个样本为正的概率为

$$P(1|X_i)=\frac{1}{1+e^{af(X_i) + b}}$$

其中$a$和$b$是通过训练集训练得到的。

SofaSofa数据科学社区DS面试题库 DS面经

zl_pku   2019-01-09 09:52

7

从神经网络的角度来说,platt scaling相当于在最外面加一个sigmoid输出层

SofaSofa数据科学社区DS面试题库 DS面经

东布东   2019-01-16 09:38

这个解释很直白 - zhaijing   2019-01-29 11:02


  相关讨论

rulefit和gdbt+lr有什么区别?

欠采样后概率还原问题

kNN的k=1为什么训练误差为0?

MLR分片模型是什么模型?

adaboost里的learning rate是什么意思?

有序多分类问题

线性可分是什么意思?

KNN中K值的选择

stacking模型里每个子模型的权重如何确定?

为什么说knn是惰性算法

  随便看看

numpy.array从行向量转为列向量

plt.bar怎么设置每个bar的颜色?

python sklearn模型中random_state参数的意义

dropout rate一般设置多大?

行数很多的pandas DataFrame如何在jupyter中完整显示?