1、逻辑回归与线性回归的区别
区别而不大,逻辑回归多了一个Sigmoid函数,使样本能映射到[0,1]之间的数值,用来做分类问题。
2、逻辑回归的原理
逻辑回归是利用回归类似的方法来解决分类问题。假设有一个二分类问题,输出y{0,1},而线性模型(下文将展示这个模型)的的预测值z是实数值,我们希望找到一个阶跃函数将实数z映射为{0,1},这样我们就能很好的处理分类问题了。那么逻辑回归中是使用什么函数来进行映射的呢?就是sigmoid函数(关于为什么用这个函数请点击这里查看)
sigmoid函数的图像:
sigmoid函数中的z就是线性函数的z,因为g(z)最后输出的时样本类别的概率值,所以我们可以把阈值设为0.5,g(z)大于等于0.5的看作1,小于0.5的看作0,这样我们就能利用逻辑回归来处理二分类问题了。
3、逻辑回归损失函数推导及优化
构造损失函数J(θ)我们可能会先想到模仿线性回归中的平方误差作为损失函数,但是如果使用平方误作损失函数的话我们得到的损失函数就是一个非凸函数,这就意味着损失函数有许多局部最优解,就不能得到全局最优的θ。
非凸函数(左)和凸函数(右)
4、正则化与模型评估指标
常见模型评估:
训练集误差小(1%),验证集大(15%),为高方差,可能过拟合训练集了;
训练集误差大(15%),验证集大(16%),错误率几乎为0,高偏差,可能欠拟合,识别cat不准确;
训练集误差小(0.5%),验证集小(1%),低方差,低偏差;
训练集误差小(15%),验证集小(30%),高方差,高偏差;过拟合部分数据;
正则化:
必备知识:
给定向量 ,
L0范数:并不是一个真正的范数,它主要被用来度量向量中非零元素的个数;
L1范数:向量各个元素绝对值之和;
L2范数:向量各个元素的平方求和然后求平方根;
Lp范数:向量各个元素绝对值的p次方求和然后求 1/p 次方;
范数:响亮的各个元素求绝对值,取最大那个元素的绝对值
L1范数正则化:就是通过向目标函数中添加L1范数,使的学习到的结果满足稀疏化,用于特征选择。
5、逻辑回归的优缺点
优点:高效,不需要太大的计算量,又通俗易懂,不需要缩放输入特征,不需要任何调整,且很容易调整,并且输出校准好的预测概率。非常容易实现,且训练起来很高效。在研究中,我通常以 Logistic 回归模型作为基准,再尝试使用更复杂的算法。
由于其简单且可快速实现的原因,Logistic 回归也是一个很好的基准,你可以用它来衡量其他更复杂的算法的性能。
缺点:不能用 logistic 回归来解决非线性问题,因为它的决策面是线性的。另外还高度依赖正确的数据表示。
6、样本不均衡问题解决办法
转自:https://www.jianshu.com/p/76dce1fca85b
- 产生新数据型:过采样小样本(SMOTE),欠采样大样本。
过采样是通过增加样本中小类样本的数据量来实现样本均衡。其中较为简单的方式是直接复制小类样本,形成数量上的均衡。这种方法实现简单,但会由于数据较为单一而容易造成过拟合。 SMOTE过采样算法: 针对少数类样本的xi,求出其k近邻。随机选取k紧邻中一个样本记为xn。生成一个0到1之间的随机数r,然后根据Xnew = xi + r * (xn - xi)生成新数据。也可通过经过改进的抽样的方法,在少数类中加入随机噪声等生成数据。
欠采样大样本是通过减少多数类样本的样本数量来实现样本均衡。其中比较简单直接的方法就是随机去掉一些数据来减少多数类样本的规模,但这种方法可能会丢失一些重要的信息。还有一种方法就是,假设少数类样本数量为N,那就将多数类样本分为N个簇,取每个簇的中心点作为多数类的新样本,再加上少数类的所有样本进行训练。这样就可以保证了多数类样本在特征空间的分布特性。 - 对原数据的权值进行改变
通过改变多数类样本和少数类样本数据在训练时的权重来解决样本不均衡的问题,是指在训练分类器时,为少数类样本赋予更大的权值,为多数类样本赋予较小的权值。例如scikit-learn中的SVM算法,也称作penalized-SVM,可以手动设置权重。若选择balanced,则算法会设定样本权重与其对应的样本数量成反比。 - 通过组合集成方法解决
通过训练多个模型的方式解决数据不均衡的问题,是指将多数类数据随机分成少数类数据的量N份,每一份与全部的少数类数据一起训练成为一个分类器,这样反复训练会生成很多的分类器。最后再用组合的方式(bagging或者boosting)对分类器进行组合,得到更好的预测效果。简单来说若是分类问题可采用投票法,预测问题可以采用平均值。这个解决方式需要很强的计算能力以及时间,但效果较好,相当于结合了组合分类器的优势。 - 通过特征选择
在样本数据较为不均衡,某一类别数据较少的情况下,通常会出现特征分布很不均衡的情况。例如文本分类中,有大量的特征可以选择。因此我们可以选择具有显著区分能力的特征进行训练,也能在一定程度上提高模型的泛化效果。