Datawhale机器学习笔记 - 逻辑回归

目录

  • 理论知识点整理
  • 代码实现
  • 各算法在西瓜书中的对应章节
  • 逻辑回归算法LR相关问题
  • 参考文献

理论知识点整理

逻辑回归可看做对数衍生物对应的线性回归模型。首先,对线性回归进行概述。
线性回归可分为“线性”和“回归”两部分进行解释,线性表示采用的模型类型是线性模型,回归表示只涉及到两个类别的“二分类”任务。
采用逻辑回归进行分类预测的优劣势:
优点:实现简单,广泛应用于工业问题上;分类时计算量很小,速度快,储存资源低;便利的观测样本概率分数;对于逻辑回归而言,多重共线性并不是问题,它可以结合L2正则化来解决问题;计算代价不高,易于理解和实现。
缺点:当特征空间很大时,逻辑回归的性能不是很好;容易欠拟合,一般准确度不太高;不能很好地处理大量多类特征或变量;只能处理二分类问题(由此衍生的softmax可用于多分类问题),且必须变形可分;对于非线性特征,需要进行转换。

代码实现

代码参照datawhale链接,现对所有语句进行注释,详细解释每一句具体意思。待补充…

各算法在西瓜书中的对应章节

算法名称 机器学习一书对应位置
逻辑回归分类预测 3.3节对数几率回归
决策树分类预测 第4章节
支持向量机分布预测 第6章节

逻辑回归算法LR相关问题

1. 逻辑回归与SVM的异同
2. 逻辑回归与线性回归的不同
3. 为什么LR需要归一化或者取对数,为什么LR把特征离散化后效果更好
4. LR为什么用Sigmoid函数,这个函数有什么优缺点,为什么不用其他函数

题1、2对应参考文献2,题3对应参考文献4,题4对应文献5。

  1. 逻辑回归与SVM的异同
    相同点:
  • 都是分类算法,本质上都是在找最佳分类超平面;
  • 都是监督学习算法;
  • 都是判别式模型,判别模型不关心数据是怎么生成的,它只关心数据之间的差别,然后用差别来简单对给定的一个数据进行分类;
  • 都可以增加不同的正则项。
    不同点:
  • LR 是一个统计的方法,SVM 是一个几何的方法;
  • SVM 的处理方法是只考虑 Support Vectors,也就是和分类最相关的少数点去学习分类器。而逻辑回归通过非线性映射减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重;
  • 损失函数不同:LR 的损失函数是交叉熵,SVM 的损失函数是 HingeLoss,这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。对 HingeLoss 来说,其零区域对应的正是非支持向量的普通样本,从而所有的普通样本都不参与最终超平面的决定,这是支持向量机最大的优势所在,对训练样本数目的依赖大减少,而且提高了训练效率;
  • LR 是参数模型,SVM 是非参数模型,参数模型的前提是假设数据服从某一分布,该分布由一些参数确定(比如正太分布由均值和方差确定),在此基础上构建的模型称为参数模型;非参数模型对于总体的分布不做任何假设,只是知道总体是一个随机变量,其分布是存在的(分布中也可能存在参数),但是无法知道其分布的形式,更不知道分布的相关参数,只有在给定一些样本的条件下,能够依据非参数统计的方法进行推断。所以 LR 受数据分布影响,尤其是样本不均衡时影响很大,需要先做平衡,而 SVM 不直接依赖于分布;
  • LR 可以产生概率,SVM 不能;
  • LR 不依赖样本之间的距离,SVM 是基于距离的;
  • LR 相对来说模型更简单好理解,特别是大规模线性分类时并行计算比较方便。而 SVM 的理解和优化相对来说复杂一些,SVM 转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。
  1. 逻辑回归与线性回归的不同
    逻辑回归是在线性回归的基础上加了一个 Sigmoid 函数(非线形)映射,使得逻辑回归称为了一个优秀的分类算法。本质上来说,两者都属于广义线性模型,但他们两个要解决的问题不一样,逻辑回归解决的是分类问题,输出的是离散值,线性回归解决的是回归问题,输出的连续值。

  2. 归一化:可以提高收敛速度,提高收敛的精度。
    为什么LR把特征离散化后效果更好?离散化的好处有哪些?
    逻辑回归属于广义线性模型,表达能力受限;
    在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点:
    逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合;
    离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力;
    特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。
    离散特征的增加和减少都很容易,易于模型的快速迭代;
    稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;
    离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;
    特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间需要进一步研究。

  3. 首先lr满足伯努利分布,而伯努利分布可以转化为指数分布,只要类条件概率满足指数分布的,其后验都可以写成sigmoid函数的形式。这是说lr可以转化为sigmoid。
    sigmoid函数优点:实现简单,可以无限求导。而且可以从(负无穷,正无穷)映射到(0,1),符合概率分布。
    缺点:导数形式在(0,0.25),容易出现梯度消失;只能处理二分问题。

参考文献

1、机器学习(西瓜书) - 周志华
2、【知乎】阿泽的学习笔记-机器学习-逻辑回归
3、 【CSDN】Logistic Regression (LR) 详解
4、【简书】LR模型的特征归一化和离散化
5、【CSDN】LR为什么用sigmoid函数

你可能感兴趣的:(机器学习基础,机器学习)