理论要点

逻辑回归是一种分类方法,主要用于二分类问题(即输出只有两种,分别代表两个类别)。对于多分类而言,将多个二分类的逻辑回归组合,即可实现多分类。




逻辑斯蒂回归 多次梯度下降 逻辑斯蒂回归的优点_损失函数


逻辑回归曲线图

逻辑回归最突出的特点:模型简单模型的可解释性强

  • 优点:实现简单,易于理解和实现;计算代价不高,速度很快,存储资源低;
  • 缺点:容易欠拟合,分类精度可能不高。本质上是一个线性的分类器,难以应对较为复杂的数据。

从以下资料(AI训练营机器学习-阿里云天池)给出的二分类和多分类实例,可以总结:(1)四维特征二分类,模型学习到的分类边界是一个四元一次方程;(2)四维特征三分类,模型学习到的分类边界是四元一次方程组——包含3个四元一次方程;模型学习三分类问题时,把问题转化成了3个二分类问题~

常见应用场景:1.信用评分卡建模;2.点击率预估:GBDT+LR

常用LR建模API


from sklearn.linear_model import LogisticRegression
lr=LogisticRegression()实例化lr模型
lr.fit(X,y)训练模型
lr.coef_查看模型组合系数
lr.intercept_查看模型偏置项
predict()预测所属类别
predict_proba()预测属于各个类别概率


建模相关可视化API


# 按label区分不同类别颜色 绘制二维散点图
plt.scatter(x1d, x2d, c=label)
# 绘制二维等高线,通常用于可视化模型曲线【z_proba是模型对x,y点的预测结果】
plt.contour(x, y, z_proba, [0.5], linewidths=2., colors='blue')

# 对data的各列两两组合,按hue列分组,看组合特征对hue的区分度
sns.pairplot(data, diag_kind, hue)

# 盒子图:不同类别target 在不同特征上的分布差异情况
sns.boxplot(x='target', y=col_name, saturation=0.5, palette='pastel', data)


常见问题集锦

(1.)详细介绍一下逻辑回归,包括逻辑回归的分类公式,损失函数、逻辑回归分类的过程。

假设样本分布是二项逻辑斯蒂分布,P(Y=1|x)=sigmoid(wx),交叉熵损失-yilogpi-(1-yi)log(1-pi)。特征进行线性组合,然后做sigmoid变换映射成概率,概率>0.5正样本。

(2.)具体讲解一下线性回归的底层原理,如何训练、如何得到参数、如何调整参数等。

对交叉熵损失函数求导,通过SGD更新梯度:损失函数关于线性组合系数wi的导数为gi=(p(xi)-yi)·xi,其中p(xi)就是sigmoid(wx)预测的概率,对于第i个维度 wk+1=wk-a·gi。

(3.)如果想选择重要特征,在LR上加哪种正则化项?

应该加L1正则化,L1正则化可以做特征选择,L2正则化是使各个特征权重差异不大 主要起到平滑作用。

(4.)为什么LR更适合离散特征?

稀疏向量内积乘法运算速度更快。LR 属于广义线性模型,表达能力有限,经过离散化后,每个变量有单独的权重,这相当于引入了非线性,能够提升模型的表达能力,加大拟合。特征离散后对异常值更具鲁棒性,模型更稳定。

(5.)LR为什么不可以用MSE作为损失函数?

MSE 会有梯度消失现象(sigmoid函数求导,在0和1两端惹的祸),MSE 的导数非凸 求最优解困难。