机器学习之Logistic回归

1、逻辑回归与线性回归的联系与区别

线性回归Logistic回归
自变量(特征)连续或离散连续或离散
因变量(结果)连续实数(0,1)之间连续值
关系线性非线性
函数 y = a x + b y = ax + b y=ax+b p = S i g m o i d ( a x + b ) p = Sigmoid(ax + b) p=Sigmoid(ax+b)
损失函数拟合函数预测函数
参数计算方式最小二乘最大似然估计

2、 逻辑回归的原理

阶跃函数

以二分类为例,输出结果要么为0,要么为1,即 y ∈ {0,1}。

分类的基本思想:

在空间中构建一个合理的超平面,把空间区域划分为两个子空间,每种类别在平面的一面。

分类结果需要将实数值约为0或1。最理想的是阶跃函数。

f ( x ) = { 1 w T + b &gt; 0 0 w T + b &lt; = 0 f(x) = \begin{cases} 1 &amp; w^T+b&gt;0\\ 0 &amp; w^T+b&lt;=0 \end{cases} f(x)={10wT+b>0wT+b<=0

但阶跃函数具有不连续不可导的特点,所以选择平滑版本sigmoid函数。

sigmoid函数

f ( x ) = 1 1 + e x p ( − w t x + b ) f(x) = \frac{1}{1 + exp(-w^{t}x+b)} f(x)=1+exp(wtx+b)1

定义域是R,值域是[0 , 1],典型的概率空间,阈值为0.5,输出大于0.5归为1类,小于0.5归为0类。

3、逻辑回归损失函数推导及优化

损失函数

1.令

P ( Y = 1 ∣ x ) = exp ⁡ ( w ⋅ x ) 1 + exp ⁡ ( w ⋅ x ) = exp ⁡ ( w ⋅ x ) / exp ⁡ ( w ⋅ x ) ( 1 + exp ⁡ ( w ⋅ x ) ) / ( exp ⁡ ( w ⋅ x ) ) = 1 e − ( w ⋅ x ) + 1 P ( Y = 0 ∣ x ) = 1 1 + exp ⁡ ( w ⋅ x ) = 1 − 1 1 + e − ( w ⋅ x ) = e − ( w ⋅ x ) 1 + e − ( w ⋅ x ) \begin{aligned} P(Y=1|x)&amp;=\frac{\exp(w\cdot x)}{1+\exp(w\cdot x)}\\ &amp;=\frac{\exp(w\cdot x)/\exp(w\cdot x)}{(1+\exp(w\cdot x))/(\exp(w\cdot x))}\\ &amp;=\frac{1}{e^{-(w\cdot x)}+1}\\ P(Y=0|x)&amp;=\frac{1}{1+\exp(w\cdot x)}\\ &amp;=1-\frac{1}{1+e^{-(w\cdot x)}}\\ &amp;=\frac{e^{-(w\cdot x)}}{1+e^{-(w\cdot x)}} \end{aligned} P(Y=1x)P(Y=0x)=1+exp(wx)exp(wx)=(1+exp(wx))/(exp(wx))exp(wx)/exp(wx)=e(wx)+11=1+exp(wx)1=11+e(wx)1=1+e(wx)e(wx)

2.整合

参数估计这里, 似然函数中的表达

∏ i = 1 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i \prod^N_{i=1}[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i} i=1N[π(xi)]yi[1π(xi)]1yi

这里利用了 y i ∈ { 0 , 1 } y_i\in\{0,1\} yi{0,1}这个特点

更一般的表达

∏ i = 1 N P ( y i ∣ x i , W ) \prod_{i=1}^NP(y_i|x_i,W) i=1NP(yixi,W)

3.求似然函数

利用最大似然估计,假定样本与样本之间相互独立,那么整个样本集生成的概率即为所有样本生成概率的乘积。

并求对数。

log ⁡ ∏ i = 1 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i = ∑ i = 1 N y i log ⁡ ( π ( x i ) ) + ( 1 − y i ) log ⁡ ( 1 − π ( x i ) ) = ∑ i = 1 N y i log ⁡ ( π ( x i ) 1 − π ( x i ) ) + log ⁡ ( 1 − π ( x i ) ) = ∑ i = 1 N y i ( w ⋅ x i ) − log ⁡ ( 1 + exp ⁡ ( w ⋅ x i ) ) \begin{aligned} \log \prod_{i=1}^N[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i}&amp;=\sum_{i=1}^Ny_i\log(\pi(x_i))+(1-y_i)\log(1-\pi(x_i))\\ &amp;=\sum_{i=1}^Ny_i\log(\frac{\pi(x_i)}{1-\pi(x_i)})+\log(1-\pi(x_i))\\ &amp;=\sum_{i=1}^Ny_i(w\cdot x_i)-\log(1+\exp(w\cdot x_i)) \end{aligned} logi=1N[π(xi)]yi[1π(xi)]1yi=i=1Nyilog(π(xi))+(1yi)log(1π(xi))=i=1Nyilog(1π(xi)π(xi))+log(1π(xi))=i=1Nyi(wxi)log(1+exp(wxi))

梯度下降法优化

梯度下降原理:

将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一小步,能够下降的最快。

4、 正则化与模型评估指标

正则化

  • L1正则化(LASSO)

    在原来的损失函数基础上加上权重参数的绝对值的和

    L = E i n + λ ∑ j = 1 n ∣ θ j ∣ L = E_{in} + \lambda\sum_{j=1}^{n}|\theta_j| L=Ein+λj=1nθj

  • L2正则化(岭回归)

    在原来的损失函数基础上加上权重参数的平方和

    L = E i n + λ ∑ j = 1 n θ j 2 L = E_{in} + \lambda\sum_{j=1}^{n}\theta_{j}^2 L=Ein+λj=1nθj2

模型评估指标

  • 平均绝对误差(MAE:Mean Absolute Error)

M A E = 1 m ∑ i = 1 m ∣ ( f ( x i ) − y i ∣ MAE = \frac{1}{m}\sum_{i=1}^{m}|(f(x_i)−y_i| MAE=m1i=1m(f(xi)yi

  • 平均平方差(均方误差,MSE:Mean Square Error)

M S E = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 MSE = \frac{1}{m}\sum_{i=1}^{m}(f(x_i)−y_i)^2 MSE=m1i=1m(f(xi)yi)2

  • 方均根差(RMSE:Root Mean Square Error)

R M S E = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 RMSE=\sqrt{\frac{1}{m}∑_{i=1}^{m}(f(x_i)−y_i)^2} RMSE=m1i=1m(f(xi)yi)2

  • 平均绝对百分比误差(MAPE:Mean Absolute Percentage Error)

M A P E = 100 n ∑ t = 1 n ∣ y i − f i y i ∣ MAPE = \frac{100}{n}\sum_{t=1}^{n}|\frac{y_i-f_i}{yi}| MAPE=n100t=1nyiyifi

  • R平方

R 2 = 1 − ∑ i = 1 N ( y i − y i ^ ) 2 ∑ i = 1 N ( y i − y i ˉ ) 2 R^2 = 1- \frac{\sum_{i=1}^N(y_i-\hat{y_i})^2}{\sum_{i=1}^N(y_i-\bar{y_i})^2} R2=1i=1N(yiyiˉ)2i=1N(yiyi^)2

  • 交叉检验

5、逻辑回归的优缺点

优点:

  • 简单,计算量小,存储资源低

  • 直接对分类的可能性进行建模,无需事先假设数据分布,避免了假设分布不准确所带来的问题

  • 不是仅预测出”类别“,而是可得到近似概率预测,这对许多需要利用概率辅助决策的任务很有用

  • 对率函数是任何阶可导凸函数,有很好的函数性质,现有的许多数值优化算法都可知己用于求取最优解

缺点

  • 欠拟合,精度不高。

  • 数据特征有缺失或者特征空间很大时表现效果并不好。

6、样本不均衡问题解决办法

  • 1. SMOTE(Synthetic Minority Over-sampling Technique)过采样小样本(扩充小类,产生新数据)
  • 欠采样大样本(压缩大类,产生新数据)
  • 对小类错分进行加权惩罚
  • 分治ensemble
  • 分层级ensemble
  • 基于异常检测的分类

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)
参数含义作用说明
penalty正则化选择参数防止过拟合参数可选值为l1、l2,分别对应l1正则化和l2正则化,默认是l2正则化。
dual改成对偶问题相反的问题
tol残差收敛条件逻辑回归模型的损失函数是残差平方和默认是0.0001,也就是只需要收敛的时候两步只差<0.0001就停止,可以设置更大或更小。
C正则化系数正则化强度的导数必须是一个正数,值越小,正则化强度越大,即防止过拟合的程度更大。
fit_intercept截距/方差是否将截距/方差加入到决策模型中默认为True
class_weight正负样本比例用来调节正负样本比例的默认是值为None
random_state随机种子的设置种子相同,那么每次使用的训练集和测试集都是一样的默认是None
solver损失函数的优化方法用来指明损失函数的优化方法默认是‘liblinear’(坐标轴下降法来迭代优化损失函数)方法,还有lbfgs(拟牛顿法的一种),newton-cg(牛顿法法的一种),sag(随机平均梯度下降,数据量大时使用)
max_iter算法收敛的最大迭代次数求取损失函数最小值的迭代次数默认是100
multi_class分类方法参数选择分类方法参数选择‘ovr’和‘multinomial’两个值可以选择,默认值为‘ovr’,
verbose任务进程输出一些模型运算过程中的东西(任务进程)默认是False
warm_start上次的模型结果作为初始化是否使用上次的模型结果作为初始化默认是False
n_jobs并行运算数量(核的数量)并行运算数量(核的数量)默认为1,如果设置为-1,则表示将电脑的cpu全部用上
3.3 调参模型对象
方法含义
coef_返回各特征的系数,绝对值大小可以理解成特征重要性
intercept_返回模型的截距
n_iter_模型迭代次数
3.4 模型方法
方法为估计器设置参数
decision_function(X)返回决策函数值(比如svm中的决策距离)
predict_proba(X)返回每个类别的概率值(有几类就返回几列值)
predict_log_proba(X)返回概率值的log值(即将概率取对数)
predict(X)返回预测结果值(0/1)
score(X, y=None)返回函数
get_params(deep=True)返回估计器的参数
set_params(**params)为估计器设置参数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值