为什么说LR适合大样本,SVM适合小样本?

  统计/机器学习    浏览次数:9654        分享
0

谢谢

 

今天二面了吗   2019-04-16 15:33



   2个回答 
2

数据矩阵$X$是$d \times n$,$n$为数据点数,$d$为维数。先定义$d \ll n$是大样本,$n \ll d$是小样本。$d \approx n$时,LR和SVM都可用。LR(逻辑回归)有$d$个待求的特征权重$w$,SVM有 $n$个数据点权重$\alpha$。

1. SVM只需要较少的支持向量(权重$\alpha>0$的点)就可以确定分割超平面,而对于LR,当$n<10d$时,有可能会有过拟合问题。

2. 再比较下LR和SVM的训练的计算和空间复杂度。

假定用gradient descent解LR,用Coordinate desent解SVM的dual probelm,它们主要计算量在求梯度。

对于LR,梯度$df/dw=X(h(X^Tw)-y)$, $h()$是sigmiod函数,参考。计算复杂度$\mathcal{O}(ndT)$,$T$是循环次数。

对于SVM, 增量$\delta_i^*=\frac{1-(Q\alpha)_i}{Q_{ii}}$,$Q_{ij}=y_iy_jk(x_i,x_j)$,参考。计算复杂度$\mathcal{O}(n^2T)$。如果需要存储kernel distance matrix$K$,空间复杂度是$\mathcal{O}(n^2)$。

3. 应该反过来说,因为过拟合,小样本不适合LR,需要降维;因为计算和空间复杂度,大样本不适合SVM,需要预处理,减小样本数。

4.zl_pku提到LR可以online training,SVM也可以online。比如找出的support vectors加新数据再算SVM。


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

Zealing   2019-04-17 05:43

1

SVM不适合大样本,因为计算的原因,SVM会非常慢。SVM适合小样本是因为SVM只由支持向量决定,所以样本多少对最终的支持向量影响不大。

LogisticRegression适合大样本是因为我们可以用在线数值方法进行迭代求解,比如随机梯度下降,这样速度很快也非常适合并行计算。但是LogisticRegression也同样适合小样本,只要满足样本数量是变量数量的10倍以上就够了。

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

zl_pku   2019-04-17 11:11



  相关讨论

SVM和LR适合稀疏数据吗?

为什么SVM里两个超平面的距离是1/||w||?

SVM里的软间隔是什么意思

支持向量机(SVM)里的支持向量是什么意思

SVM的支持向量最少有几个?

lssvm核函数 matlab

与基于一般形式的支持向量回归相比,最小二乘支持向量回归更准确?

线性支持向量机和中心化中截距的问题

如果支持向量机做回归任务,支持向量是什么?

SVM模型的可解释性如何?

  随便看看

凸优化中局部最优解就是全局最优解吗?

推荐系统里的ALS是什么意思?

pytorch里view(-1, 1)什么意思?

把pandas.DataFrame中所有行全部随机排列

牛顿法到底是一阶优化算法还是二阶优化算法?