目录
任务二 逻辑回归算法梳理
1、逻辑回归与线性回归的联系与区别
(1)线性回归要求变量服从正态分布,logistic回归对变量分布没有要求。
(2)线性回归主要应用预测连续变量,如房屋价格;逻辑回归主要用于解决分类问题
(3)线性回归要求自变量和因变量呈线性关系,而logistic回归不要求自变量和因变量呈线性关系
(4)logistic回归是分析因变量取某个值的概率与自变量的关系,而线性回归是直接分析因变量与自变量的关系
2、 逻辑回归的原理
面对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,然后测试验证这个求解的模型的好坏。Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别)回归模型中,y是一个定性变量,比如y=0或1,logistic方法主要应用于研究某些事件发生的概率。
第一步:构造预测函数:
Logistic函数(Sigmoid函数),函数形式:
构造预测函数为:
函数h(x)的值有特殊的含义,它表示结果取1的概率,因此对于输入x分类结果为类别1和类别0的概率分别为:
第二步:构造损失函数
cost函数和J函数如下,它们是基于最大似然估计推导得到的。
第三步:梯度下降法求解最小值
3、逻辑回归损失函数推导及优化
首先函数h(x)的值有特殊的含义,它表示结果取1的概率,因此对于输入x分类结果为类别1和类别0的概率分别为:
极大似然估计
根据上式,接下来我们可以使用概率论中极大似然估计的方法去求解损失函数,首先得到概率函数为:
因为样本数据(m个)独立,所以它们的联合分布可以表示为各边际分布的乘积,取似然函数为:
取对数似然函数:
最大似然估计就是要求得使 取最大值时的
,这里可以使用梯度上升法求解。我们稍微变换一下:
因为乘了一个负的系数,然后就可以使用梯度下降算法进行参数求解了。
4、 正则化与模型评估指标
(1)正则化
上图左是欠拟合,可以看出logistic回归模型没有很好地拟合训练数据,训练误差很大。上图中是一个比较好的分类模型。上图右就是一个过拟合现象,这个复杂的分类模型可以准确无误的把训练数据的每个样本正确分类,但是其泛化能力很差。
同样logistic回归通过正则化(regularization)惩罚参数,防止其取得过大,可以避免过拟合问题(overfitting)。首先看代价函数(cost function):
其中红色框起来的那一项为正则项。lambda是正则项系数:
• 如果它的值很大,说明对模型的复杂度惩罚大,对拟合数据的损失惩罚小,这样它就不会过分拟合数据,在训练数据上的偏差较大,在未知数据上的方差较小,但是可能出现欠拟合的现象;
• 如果它的值很小,说明比较注重对训练数据的拟合,在训练数据上的偏差会小,但是可能会导致过拟合。
再来看其梯度下降(gradient descent):
(2)模型评估指标
分类模型:
准确率(Accuracy)
精确率(Precision)
召回率(Recall)
F1-sore(精确率和召回率的调和平均)
AUC(ROC曲线下面积)
回归模型:
平方根误差(RMSE)
误差分位数(Quantiles of Errors)
Almost Crrect” Predictions
5、逻辑回归的优缺点
优点:
1)适合需要得到一个分类概率的场景。
2)计算代价不高,容易理解实现。LR在时间和内存需求上相当高效。它可以应用于分布式数据,并且还有在线算法实现,用较少的资源处理大型数据。
3)对于数据中小噪声的鲁棒性很好,并且不会受到轻微的多重共线性的特别影响。(严重的多重共线性则可以使用逻辑回归结合L2正则化来解决,但是若要得到一个简约模型,L2正则化并不是最好的选择,因为它建立的模型涵盖了全部的特征。)
缺点:
1)容易欠拟合,分类精度不高。
2)数据特征有缺失或者特征空间很大时表现效果并不好。
6、样本不均衡问题解决办法
(1)扩大数据集
(2)使用其他评价指标
(3)对数据集进行重采样
(4)产生人工数据样本
7、sklearn参数
sklearn.linear_model.LogisticRegression(penalty='l2', dual=False, tol=0.0001, C=1.0,fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None,solver='liblinear', max_iter=100, multi_class='ovr', verbose=0,warm_start=False, n_jobs=1)