逻辑回归算法

算法篇

逻辑回归算法

逻辑回归算法属于有监督学习算法中的分类算法,因为逻辑运算只会出现True或False,所以逻辑回归只能做二分类问题。
逻辑回归算法是将线性回归的运算结果放入sigmoid函数中,得出一个(0,1)之间的数,大于0.5就属于类1,小于0.5就属于类0
在这里插入图片描述
sigmoid函数的公式和图像如下所示:
在这里插入图片描述
在这里插入图片描述
逻辑回归的结果是通过线性回归计算出来的,线性回归质量的好坏会直接影响逻辑回归的结果,影响线性回归的就是回归系数。对于线性回归来说是使用随机梯度下降的方法计算的,也就是最小二乘法来计算回归系数的。对于逻辑回归也是使用随机梯度下降的方法,只不过把损失函数变成了对数似然损失函数,因为对数似然损失函数中的h(x)等于sigmoid函数,而sigmoid函数中的x就等于线性回归的结果h(w),也就是变相在计算最佳回归系数。

逻辑回归使用对数似然损失函数来衡量真实结果与预测结果的误差
在对数似然损失函数中通常是以e为底的
对数似然损失函数公式:
在这里插入图片描述
使用对数似然损失函数计算最佳回归系数的步骤:

  1. 随机初始化一组 [ w 0 , w 1 , w 2 , w 3....... w n ] [w0,w1,w2,w3.......wn] [w0,w1,w2,w3.......wn]
  2. 根据初始化 w w w和特征值,计算出预测结果sigmoid函数S(x)
  3. 利用对数似然损失函数,计算真实值与预测值之间的误差和Loss
  4. 计算误差关于 w w w的偏导( w 同 θ w同θ wθ)
    在这里插入图片描述
  5. 沿着梯度的负方向进行更新 w w w( w 同 θ w同θ wθ)
    在这里插入图片描述
    lr表示的是学习率,lr是小于零的数,意思就是当求出的偏导太大时,减去一个很大的值很容易跳过导数等于0的点,所以要用学习率来控制它梯度下降的幅度。
  6. 重复2-5步骤,直到达到一定的迭代次数或者损失小于某个值时停止。
代码实现
import numpy as np
from sklearn.linear_model import LogisticRegression
# 实例化
alg = LogisticRegression()
# 参数:max_iter:最大迭代次数

# 拟合
alg.fit(X_train, y_train)

# 查看准确率
score = alg.score(X_test, y_test)
print('准确率:', score)

# 查看回归系数
print('回归系数', alg.coef_)
# 查看截距
print('截距:', alg.intercept_)

# 查看sigmoid函数处理过后的概率
prob = 1/(1+np.exp(-alg.decision_function(X_test)))
prob = [float('%.2f'%i) for i in prob]
print('概率:', prob)
逻辑回归算法的特点
  • 结果具有可解释性【根据线性方程公式可以明确得出结果是如何计算的】
  • 只能是二分类
  • 和朴素贝叶斯、knn相比,逻辑回归的效果更好,但是时间略慢
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值