关于SVM,LR,和GBDT的介绍理解

关于SVM,LR,和GBDT的介绍理解

LR基本可以被划分为线性模型,模型本身并不能完全解决非线性问题。但是我们在使用LR的过程中,往往要对数据进行稀疏化,例如one-hot操作。这样操作会将特征的向量空间进行升维,使得问题变得线性可分。我们在工业级的数据中,往往输入模型的特征维度过百万,千万甚至上亿,很多都是这种特征稀疏化造成的。

SVM

SVM本身是一个线性模型,其非线性拟合能力与核函数有关。在SVM的核函数为线性核的时候,其性能与LR很类似,在少量数据集上比LR多了些泛化能力,这一点是支持向量造成的。当SVM采用一些非线性核,比如径向基或者高斯核的时候,其非线性拟合能力比较好。在中小规模的数据集上,SVM分类效果很强的,相比于GBDT,其能够更好的控制过拟合,这一点是其原理造成的。其也可以使用在高维稀疏数据集上,这一点是GBDT的硬伤。但是其缺点也很明显,SVM对缺失值很敏感,需要标准化(归一化)操作,在数据规模大的时候速度效率低等缺点(速度效率与核函数和支持向量数量有关)

GBDT

GBDT是一个非线性模型,它是决策树出身,天生就可以拟合各种非线性问题。GBDT受数据量大小的影响相对来说较小,因为GBDT复杂度随着数据发生变化。数据复杂它可以生成复杂的树,数据简单可以生成简单的树,这里的数据简单和复杂是对其分类难度来说的。但其缺点也是比较明显,很容易过拟合,而且由于其对列进行操作,GBDT对高维稀疏向量效果就很不好。百万维的数据,GBDT会不知道从哪里下手。当然也正是由于其对列操作,所以其对缺失值不敏感,最坏情况就是那一列舍弃不要,不会造成局部噪声过大影响全局的情况。因为其切分树枝操作,只要找到合理的损失函数,GBDT对离散数据和连续数据都很好使用,这里的离散数据指的是稀疏化之前,比如班级序号这种数据,不像LR这种线性模型只对高维稀疏线性可分数据效果明显。


分享到:


相關文章: