hello,我是kk~
机器学习、深度学习等等,一般大家都想进大型的互联网公司。
那么,对于国企这类单位,难度到底怎么样?
我看同样也有人发出这样的疑问。。。
有优点、也有缺点。。
大家给出了很多的建议。
就是那句话,会基础就好,会有人干活儿的。
不过,话说回来,这几天还真有一个同学面试了光大的算法岗。
一面问到了xgboost相关内容,逻辑回归、XGBoost、Lightgbm有何不同?
咱们也好好说说这个问题,从以下6个方面进行详细的阐述~
1. 基本原理:
逻辑回归: 是一种基于线性回归的分类算法,适用于二分类问题。它使用sigmoid函数将线性组合的特征映射到[0,1]的范围,表示概率。
XGBoost: 是一种梯度提升算法,它通过迭代地训练弱分类器,并将它们组合成一个强分类器。XGBoost使用梯度提升技术,通过最小化损失函数的梯度来提高模型性能。
LightGBM: 也是一种梯度提升算法,类似于XGBoost,但在处理大规模数据集时具有更高的效率。LightGBM使用直方图算法来处理特征,以降低内存使用和加速训练过程。
2. 并行性:
逻辑回归: 通常是串行执行的,难以并行化处理。
XGBoost和LightGBM: 都支持并行化处理,能够利用多核心计算资源,加速训练过程。
3. 对缺失值的处理:
逻辑回归: 对缺失值较为敏感,需要在训练前进行数据处理以处理缺失值。
XGBoost和LightGBM: 能够直接处理缺失值,不需要额外的处理步骤。
4. 对离散特征的处理:
逻辑回归: 需要对离散特征进行独热编码等处理,转换成数值型特征。
XGBoost和LightGBM: 可以直接处理离散特征,不需要进行独热编码等转换。
5. 树的生长策略:
XGBoost: 使用的是深度优先的生长策略,通过贪心算法选择最佳分裂点。
LightGBM: 使用的是叶子优先的生长策略,通过直方图算法选择最佳分裂点,有助于降低内存使用和提高训练速度。
6. 正则化:
逻辑回归: 支持L1和L2正则化。
XGBoost和LightGBM: 也支持正则化,通过控制树的复杂度来防止过拟合。
总体而言,选择使用哪个算法取决于问题的特点、数据的规模、性能需求等因素。逻辑回归适用于简单的分类问题,而XGBoost和LightGBM则更适用于复杂问题和大规模数据集。 LightGBM在处理大规模数据时的性能优势使其成为一种常见的选择。
好了,今天的内容先这样,继续想看解决什么问题,评论区留言~
都到这里了,点赞~