Python机器学习--回归算法--逻辑回归算法

article/2025/9/16 18:21:25

逻辑回归算法

逻辑回归算法类型:

逻辑回归属于有监督学习的分类算法(只能做二分类)
在这里插入图片描述

逻辑回归算法原理:

将线性回归的结果输入sigmoid函数中,得出预测为类1的概率(
如果概率为0.2 有20%的可能属于类1,属于类0的概率是80%; 结果是类0
如果概率为0.8 有80%的可能属于类1,属于类0的概率是20%; 结果是类1

线性回归算法方程
在这里插入图片描述
sigmoid函数公式和图像:
在这里插入图片描述
在这里插入图片描述
逻辑回归的结果是基于线性回归计算出来的,线性回归的质量好坏会直接影响逻辑回归的结果,影响线性回归的就是回归系数。对于线性回归来说是使用随机梯度下降的方法计算的,对于逻辑回归,也是使用随机梯度下降的方法,只不过将损失函数换成了对数似然损失函数,因为对数似然损失函数中的 h(x)等于sigmoid函数,而sigmoid函数中的x就等于线性回归中的 h(w) ,也就是变相的计算最佳的回归系数。

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

对数似然损失函数计算最佳回归系数的步骤:

  • 随机初始化一组【w1,w2,w3,w4…wn】

  • 根据初始化的w结合特征值,计算出预测结果sigmoid函数S(x)

  • 利用对数似然损失函数,计算出真实值与预测值之间的误差和Loss

  • 计算误差关于w的偏导(w等同θ)
    在这里插入图片描述

  • 沿着梯度的负方向进行更新w(w等同θ)
    在这里插入图片描述
    lr表示的是学习率,lr是小于零的数,意思就是当求出的偏导太大时,减去一个很大的值很容易跳过导数等于0的点,所以要用学习率来控制它梯度下降的幅度。

  • 重复2-5步骤,直到达到一定的迭代次数或者损失小于某个值时停止。

在这里插入图片描述

逻辑回归基于sklearn的实现

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算法相比,逻辑回归效果更好,但耗时更久。

http://chatgpt.dhexx.cn/article/B1wYItfL.shtml

相关文章

算法笔记(11)逻辑回归算法及Python代码实现

逻辑回归算法是一种被广泛使用的分类算法,通过训练数据中的正负样本,学习样本特征到样本标签之间的假设函数。逻辑回归假设因变量 y 服从伯努利分布,而线性回归假设因变量 y 服从高斯分布。 因此与线性回归有很多相同之处,去除Sig…

深度学习原理-----逻辑回归算法

系列文章目录 深度学习原理-----线性回归梯度下降法 深度学习原理-----逻辑回归算法 深度学习原理-----全连接神经网络 深度学习原理-----卷积神经网络 深度学习原理-----循环神经网络(RNN、LSTM) 时间序列预测-----基于BP、LSTM、CNN-LSTM神经网络…

逻辑回归算法原理及python实现

文章目录 引言逻辑回归算法原理逻辑回归损失函数 python实现逻辑回归决策边界python实现多项式逻辑回归sklearn中的逻辑回归逻辑回归中的正则化sklearn实现逻辑回归 引言 逻辑回归(Logistic Regression)是一种分类学习算法,其本质是将样本的…

基于逻辑回归算法模型搭建思路

在真实工作场景中,有多种算法依据借贷数据集建立模型,主要使用的算法有逻辑回归、神经网络、决策树、贝叶斯信念网、GBDT算法等,本系列文章旨在为刚入门和对模型感兴趣的同学介绍传统风控模型算法之一——逻辑回归。 前方高能!准…

【机器学习】Logistic Regression 逻辑回归算法详解 + Java代码实现

文章目录 一、逻辑回归简介1.1 什么是逻辑回归1.2 Sigmoid函数1.3 预测函数 二、逻辑回归实战 - Java代码实现 一、逻辑回归简介 1.1 什么是逻辑回归 逻辑回归(Logistic Regression)是一种用于解决二分类(0 or 1)问题的机器学习…

机器学习之逻辑回归算法

文章目录 逻辑回归原理推导逻辑回归求解 逻辑回归(Logistic Regression)是机器学习中的一种分类模型,它是一种分类算法,虽然名字中带有回归,但是它与回归之间有一定的联系。 看到回归二字,很多人可能会认为…

机器学习算法 之 逻辑回归算法

1 逻辑回归之第一次学习 本文内容主要转自两处: [1] 逻辑回归从入门到深入(logistic regression) 本文内容从Python 逻辑回归实际使用的角度出发,较为通俗易懂,感谢其作者的分享。 [2] 《百面机器学习》之逻辑回归 注意&#xf…

逻辑回归算法简介

逻辑回归算法:虽然名字中带有回归两个字,但它却不是回归算法,它是一个经典的二分类算法。 回归与分类的区别: 回归:可以得到一个准确值或一个区间值,比如房屋价格预测,NBA比赛得分等。 分类&am…

逻辑回归算法原理

回归与分类的不同在于其目标变量是否是连续的。分类是预测出一个标签,找到一条线或超平面去区分数据,输出是离散的、有限的。回归是预测出一个量,找到一条线去尽可能的拟合逼近这些数据,输出是连续的、无限的。 逻辑回归本质上是线…

机器学习算法--逻辑回归原理介绍

一、逻辑回归基本概念 1. 什么是逻辑回归 逻辑回归就是这样的一个过程:面对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,然后测试验证我们这个求解的模型的好坏。 Logistic回归虽然名字里带“…

逻辑回归算法

逻辑回归算法-龙珠计划 一、逻辑回归算法原理 逻辑回归(Logistic Regression) 属于机器学习 — 监督学习 — 分类。 逻辑回归(Logistic Regression)主要解决二分类问题,用来表示某件事情发生的可能性。 逻辑回归本…

【机器学习】逻辑回归算法

逻辑回归算法 学习目标1. 逻辑回归的介绍1.1 逻辑回归的应用场景1.2 逻辑回归的原理1.2.1 输入1.2.2 激活函数 1.3 损失以及优化1.3.1 损失1.3.2 优化 1.4 小结 2. 逻辑回归api介绍3. 案例:癌症分类预测-良/恶性乳腺癌肿瘤预测3.1 背景介绍3.2 案例分析3…

java中字符流和字节流的区别_java中字节流和字符流有哪些区别

java中字节流和字符流的区别有:1、定义不同;2、结尾不同;3、处理方式不同;4、缓冲区不同;5、编码方式不同。字节流默认不使用缓冲区,而字符流使用缓冲区。字节流采用ASCII编码,字符流采用unicod…

JAVA--字节流和字符流区别

(一)功能区别 1、FileInputSteam和FileOutputStream可以完成所有格式文件的复制; 2、FileReader和FileWriter只能完成文本格式的复制,无法完成视频、音频等文件的复制; (二)区别原理 1、字节…

Java进阶(四十五)java 字节流与字符流的区别

字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区&a…

字节流与字符流的区别用字节流好还是用字符流好?

字节流: (A)FileOutputStream(File name) 创建一个文件输出流,向指定的 File 对象输出数据。 (B)FileOutputStream(FileDescriptor) 创建一个文件输出流,向指定的文件描述器输出数据。 (C)FileOutputStream(String name) 创建一个文件输出流&…

Java基础面试题 | 字节流和字符流有什么区别?

字节流按 8 位传输,以字节为单位输入输出数据,字符流按 16 位传输,以字符为单位输入输出数据。 但是不管文件读写还是网络发送接收,信息的最小存储单元都是字节。 java 字节流与字符流的区别_afa的专栏-CSDN博客_java中字节流和…

JAVA字节流和字符流的区别

之前在复习IO的时候,为了方便记忆,提到了以Stream结尾的为字节流,以Writer或者Reader结尾的为字符流。 除了在使用上的不一样,那究竟两者有什么区别呢。直接给出结论:字节流在操作时本身不会用到缓冲区(内…

字节流与字符流的区别及相互转换

转载:http://www.cnblogs.com/sjjsh/p/5269781.html 先来看一下流的概念: 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用…