机器学习面试笔记整理2-逻辑回归

机器学习面试笔记整理2-逻辑回归

    • 算法思想
    • 优缺点
    • 应用
    • 面试问题收集

算法思想

假设数据服从伯努利分布,在训练数据集中基于对数似然函数,利用梯度下降,找出最佳拟合曲线(最佳分类线 θ T x θ^Tx θTx),通过sigmoid输出的概率值将现有样本进行分类。

优缺点

优点:
1.简单高效,计算量小
2.以概率形式输出,也因此可做ranking model
3.可解释性强,可控度高(因每个特征的theta权重都是可知的,即可知哪些特征对结果影响最大)
4.添加(个性化)特征很简单
5.训练快,特征工程后效果更好
6.方便添加组合特征

缺点:
1.本身无法筛选特征,可用GBDT筛选特征(后面详讲)
2.处理非线性数据,需进行转换(特征离散化,特征组合)
3.对样本分布敏感,即很难处理数据不平衡问题
4.准确度并不是很高,因为形式简单(非常类似线性模型),很难去拟合数据的真实分别

应用

垃圾邮件分类
天气预测、疾病判断和广告投放
CTR预估
电商购物搭配推荐,

面试问题收集

1. 线性回归和LR的区别:
(1)线性回归要求变量服从正态分布;LR无要求
(2)线性回归针对连续性变量;LR针对类别类变量
(3)线性回归输出的是因变量和自变量的关系,主要做回归分析;LR输出是概率值,可做分类/回归
(4)线性回归要求因变量和自变量呈线性关系;LR无此要求

2. 为什么不能用线性回归而用LR做分类?
因为线性回归对噪声敏感,鲁棒性不够,不能找到一个很好的阈值进行划分。由此,引出用LR,通过概率来进行分类,将线性回归映射为一个概率值,从而引出了sigmoid函数。

**3. 为什么要用sigmoid函数? **
(1) 输出为[0,1],可看作概率值,从而可根据这个概率值和伯努利分布进行分类(>0.5为正,反之为负);
(2) sigmoid求导方便:f’(x) = f(x)(1-f(x)),方便进行梯度下降求最优参数

4. 为什么不用均方误差函数来做loss?
将Sigmoid函数代入均方差函数后是个非凸函数,即存在很多局部最优解,但不一定是全局最优解;

5. 为什么要用似然估计做loss?
sigmoid对数似然函数是关于(w,b)的凸函数,方便使用梯度下降进行凸优化找到最小loss。

**6. 逻辑回归的loss function? **
对数(互熵)损失函数(凸函数),当y=1,log(h(θ)); 当y=0,log(1-h(θ)).

7.多项式组合特征对哪个模型中效果提升最大?
LR(非线性特组合),常结合GBDT进行特征组合

8.样本量太大怎么办?
(1)离散后用one-hot编码处理为0,1值;
(2)如果用连续值,做scaling(规约);
(3)spark Mlib
(4)采样,分层抽样(按照日期,用户…)

9.样本不平衡如何处理?
(1) 下采样(样本量充足+detele),上采样(少+copy);
(2) 修改损失函数,把负样本前面权重加大(如果负样本量少),比如分类y[-1.1]改为[-50.1],使得负样本权重增大;

10.LR如何处理连续值变量?
离散化

11.LR特征处理-离散化的好处?
(1)稀疏化,0,1向量内积相乘运算速度快;
(2)给线性模型带来一定的非线性,提升模型表达能力;
(3)模型更稳定,收敛度高,鲁棒性强;
(4)一定程度上降低过拟合;
(5)离散化后的特征对于异常数据有很强的鲁棒性;
(6)离散化后可以进行特征交叉,进一步引入非线性,提升表达能力;
(7)离散特征的增加和减少都很容易,易于模型的快速迭代

12.LR在训练过程中,如果有很多特征高度相关或者一个特征重复了100遍,会造成怎样的影响?
(1) 如果在损失函数最终收敛的情况下,其实就算有很多特征高度相关也不会影响分类器的效果。
(2) 但是对特征本身来说的话,假设只有一个特征,在不考虑采样的情况下,你现在将它重复100遍。训练以后完以后,数据还是这么多,但是这个特征本身重复了100遍,实质上将原来的特征分成了100份,每一个特征都是原来特征权重值的百分之一。
(3) 如果在随机采样的情况下,其实训练收敛完以后,还是可以认为这100个特征和原来那一个特征扮演的效果一样,只是可能中间很多特征的值正负相消了。

13.为什么还是会在训练过程中将最相关的特征去掉?
提高可解释性;提升训练速度

14.那LR如何处理线性相关特征/LR如何做特征选择?
嵌入型特征选择(L1正则)

15.LR处理缺失值?
LR不能处理缺失值,应提前对缺失值做相应处理(均值,0/1,众数…)

16.为什么将极大似然取对数?
(1) 统计学上,利用极大似然来估计sigmoid参数;
(2) 为求解方便,防止多个P相乘造成的浮点数下溢,再取对数,从而得到对数损失函数

17.sigmoid为什么可以做出概率?
sigmoid输入[-无穷,+无穷]输出在[0,1]之间。

**18.如何判定该分类曲线好坏? **
通过寻找最小损失函数(互熵损失函数)找到最佳判定分界

19.LR如何解决多分类问题?
softmax

20. LR如何解决非线性分类问题?
可利用GBDT进行特征组合x1x2,同时加入正则化项防止过拟合

你可能感兴趣的:(机器学习笔记,机器学习,逻辑回归,面试)