逻辑回归
1.原理
2.损失函数
损失函数可根据最大似然函数得到
3.迭代方式
随着每次用于更新梯度样本的增加,梯度更准确、迭代次数变少,内存消耗更严重,收敛更慢
批量梯度下降:全样本更新梯度
小样本梯度下降:部分样本更新梯度
随机梯度下降:每次一个样本更新梯度
4. 特点
①统计解释性好
②线性模型,准确率较低,欠拟合
③模型简单,计算成本低
④适用于小样本量、低特征维度
XGBOOST
1.原理
基于每个基分类器(如CART回归分类树)的集成模型,每个分类器采用前面所有结果的残差作为目标值,进行新分类器的训练,求和得到预测值(加法模型)
2.损失函数
特征维度的并行计算,计算分裂点时,可并行计算每个特征;梯度即残差,所以梯度大的样本更重要
3.迭代方式
4.特点
①非线性模型,准确率高
②适用于中等以上样本量
③实现并行运算,计算效率高
④解释性欠缺
5. XGBoost与GBDT有什么不同
除了算法上与传统的GBDT有一些不同外,XGBoost还在工程实现上做了大量的优化。总的来说,两者之间的区别和联系可以总结成以下几个方面。
GBDT是机器学习算法,XGBoost是该算法的工程实现。
在使用CART作为基分类器时,XGBoost显式地加入了正则项来控制模 型的复杂度,有利于防止过拟合,从而提高模型的泛化能力。
GBDT在模型训练时只使用了代价函数的一阶导数信息,XGBoost对代 价函数进行二阶泰勒展开,可以同时使用一阶和二阶导数。
传统的GBDT采用CART作为基分类器,XGBoost支持多种类型的基分类 器,比如线性分类器。
传统的GBDT在每轮迭代时使用全部的数据,XGBoost则采用了与随机 森林相似的策略,支持对数据进行采样。
传统的GBDT没有设计对缺失值进行处理,XGBoost能够自动学习出缺 失值的处理策略。
6.为什么XGBoost要用泰勒展开,优势在哪里?
XGBoost使用了一阶和二阶偏导, 二阶导数有利于梯度下降的更快更准. 使用泰勒展开取得函数做自变量的二阶导数形式, 可以在不选定损失函数具体形式的情况下, 仅仅依靠输入数据的值就可以进行叶子分裂优化计算, 本质上也就把损失函数的选取和模型算法优化/参数选择分开了. 这种去耦合增加了XGBoost的适用性, 使得它按需选取损失函数, 可以用于分类, 也可以用于回归。
LIGHTGBM
LGBM与XGB的区别在于主要使用梯度大的样本和少量梯度小的样本迭代,借鉴了adaboost思想;LGBM是深度优先(leafwise),XGB为广度优先(Levelwise)
1.原理
2.损失函数
3.迭代方式
4.特点
多层感知机(MLP)
多层感知机(MLP,Multilayer Perceptron)也叫人工神经网络(ANN,Artificial Neural Network),除了输入输出层,它中间可以有多个隐层,最简单的MLP只含一个隐层,即三层的结构。
1.原理
通过一系列的线性变换以及非线性变换,并基于反向传播、梯度下降不断更新参数,最终完成从X到Y的映射关系。
2.损失函数
MAE、MSE、对数损失等
3.迭代方式
梯度下降、前后向传播
4.特点
准确率高,理论上,足够的深度和神经元数的感知机可拟合任意函数曲线。
局限在于优化算法,网络越复杂,误差累计会越过临界值,逐渐增大。
参数较多,调参难
对计算资源要求高,适用于大数据量样本
黑盒模型,无法解释
参考