8本电子书免费送给大家,见文末。
对于离群点
对于缺失值
对于类别特征
对于数值特征
LR的基本表达形式如下:
hθ(x)=g(θTx)=11+e−θTx
得到损失函数如下:
C=1n∑[yInhθ(x)+(1−y)In(1−hθ(x))]
1)LR是参数模型,SVM是非参数模型。
2)从目标函数来看,区别在于逻辑回归采用的是logistical loss,SVM采用的是hinge loss,这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。
3)逻辑回归相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。
4)SVM不直接依赖数据分布,而LR则依赖,因为SVM只与支持向量那几个点有关系,而LR和所有点都有关系。
5)SVM本身是结构风险最小化模型,而LR是经验风险最小化模型
关于两个模型的适用情况
1. 如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM
2. 如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
3. 如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况
SVM核函数是用来解决数据线性不可分而提出的,把数据从源空间映射到目标空间(线性可分空间)。
SVM中核函数:线性核、多项式核、高斯核、Sigmoid核等。
偏差:描述的是预测值的期望与真实值之间的差距。偏差越大,越偏离真实数据。
方差:描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散。
降低方差
降低偏差
LR是广义线性模型;
XGBooost和LightGBM都是树模型;
LightGBM对于Xgboost的改进如下:
模型精度:XGBoost和LightGBM相当。
训练速度:LightGBM远快于XGBoost。(快百倍以上,跟数据集有关系)
内存消耗:LightGBM远小于XGBoost。(大约是xgb的五分之一)
缺失值特征:XGBoost和LightGBM都可以自动处理特征缺失值。
分类特征:XGBoost不支持类别特征,需要OneHot编码预处理。LightGBM直接支持类别特征。
LightGBM在XGBoost上主要有3方面的优化。
1,Histogram算法:直方图算法。
2,GOSS算法:基于梯度的单边采样算法。
3,EFB算法:互斥特征捆绑算法。
随机森林采用的bagging思想,而GBDT采用的boosting思想。这两种方法都是Bootstrap思想的应用,Bootstrap是一种有放回的抽样方法思想。虽然都是有放回的抽样,但二者的区别在于:Bagging采用有放回的均匀取样,而Boosting根据错误率来取样(Boosting初始化时对每一个训练样例赋相等的权重1/n,然后用该算法对训练集训练t轮,每次训练后,对训练失败的样例赋以较大的权重),因此Boosting的分类精度要优于Bagging。Bagging的训练集的选择是随机的,各训练集之间相互独立,弱分类器可并行,而Boosting的训练集的选择与前一轮的学习结果有关,是串行的。
组成随机森林的树可以是分类树,也可以是回归树;而GBDT只能由回归树组成。
组成随机森林的树可以并行生成;而GBDT只能是串行生成。对于最终的输出结果而言,随机森林采用多数投票等;而GBDT则是将所有结果累加起来,或者加权累加起来。
随机森林对异常值不敏感;GBDT对异常值非常敏感。
随机森林对训练集一视同仁;GBDT是基于权值的弱分类器的集成。随机森林是通过减少模型方差提高性能;GBDT是通过减少模型偏差提高性能。
↓ ↓ ↓以下8本书电子版免费领,直接送 ,想要哪本评论区说声,我小窗给你↓ ↓ ↓