iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python机器学习之逻辑回归
  • 588
分享到

Python机器学习之逻辑回归

2024-04-02 19:04:59 588人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、题目二、目的三、平台四、基本原理4.1 逻辑回归4.2 损失函数五、实验步骤一、题目 1.主题:逻辑回归 2.描述:假设你是某大学招生主管,你想根据两次考试的结果决定每个申请

一、题目

1.主题:逻辑回归

2.描述:假设你是某大学招生主管,你想根据两次考试的结果决定每个申请者的录取
机会。现有以往申请者的历史数据,可以此作为训练集建立逻辑回归模型,并用
其预测某学生能否被大学录取。

3.数据集:文件 ex2data1.txt ,第一列、第二列分别表示申请者两次
考试的成绩,第三列表示录取结果(1 表示录取,0 表示不录取)。

二、目的

1.理解逻辑回归模型

2.掌握逻辑回归模型的参数估计算法

三、平台

1.硬件:计算机

2.操作系统windows

3.编程软件:PyCharm

4.开发语言:python

四、基本原理

注:基本原理是我们在学习逻辑回归过程中的一些总结,包括为什么要选择对数损失函数等。

4.1 逻辑回归

逻辑回归就是将样本的特征可样本发生的概率联合起来,概率就是一个数,所以就是解决分类问题,一般解决二分类问题。
对于线性回归中,f ( x ) = w T x + b ,这里 f ( x ) 的范围为[ − ∞ , + ∞ ],说明通过线性回归中我们可以求得任意的一个值。对于逻辑回归来说就是概率,这个概率取值需要在区间[0,1]内,通常我们使用Sigmoid函数表示。

Sigmoid函数其表达式为(2)

在这里插入图片描述

最终我们可以通过Sigmoid函数求出对于每组自变量使得因变量预测为1的概率P;

即:

在这里插入图片描述

(当P>0.5时预测为1,小于0.5为0)
在分类情况下,经过学习后的LR分类器其实就是一组权值θ ,当有测试样本输入时,这组权值与测试数据按照加权得到

在这里插入图片描述

之后按照Sigmoid函数的形式求出

在这里插入图片描述

从而去判断每个测试样本所属的类别。

4.2 损失函数

实验一我们做线性回归模型时,给出了线性回归的代价函数的形式(误差平方和函数),具体形式如:

在这里插入图片描述

但是并不能应用到逻辑回归中,这是因为LR的假设函数的外层函数是Sigmoid函数,Sigmoid函数是一个复杂的非线性函数,这就使得我们将逻辑回归的假设函数

在这里插入图片描述

带入上式时,我们得到的 是一个非凸函数,如下图:

在这里插入图片描述

因此,此处我们需要重新考虑损失函数;
在逻辑回归中,我们最常用的损失函数为对数损失函数,对数损失函数可以为LR提供一个凸的代价函数,有利于使用梯度下降对参数求解。对数函数图像如图:

在这里插入图片描述

蓝色的曲线表示的是对数函数的图像,红色的曲线表示的是负对数 的图像,该图像在0-1区间上有一个很好的性质,如图粉红色曲线部分。在0-1区间上当z=1时,函数值为0,而z=0时,函数值为无穷大。这就可以和代价函数联系起来,在预测分类中当算法预测正确其代价函数应该为0;当预测错误,我们就应该用一个很大代价(无穷大)来惩罚我们的学习算法,使其不要轻易预测错误。
因此,我们重新定义逻辑回归的代价函数为:


在这里插入图片描述

损失函数的求解为:

在这里插入图片描述

五、实验步骤

1.数据可视化

Python中通过文件导入数据,并使用matlibplot工具建立对应散点图:

在这里插入图片描述

需要注意的是,我们的theta是三元组,θ0对应的X特征值固定为1,因此读取数据时,如上图最左侧加入一个1;

在这里插入图片描述

可以看到,被录取与不被录取的数据有较为清晰的一个界限,接下来我们要求解的就是这条界线;

2. 将线性回归参数初始化为0,计算代价函数(cost function)的初始值

根据基本原理中的代价计算公式,这里将sigmoid、损失公式代码化:

在这里插入图片描述

将theta初始化为(0,0,0)后,直接调用cost函数求值:

在这里插入图片描述

得到代价函数初始值:

在这里插入图片描述

3. 选择一种优化方法求解逻辑回归参数

(1)梯度下降法

我们选择先用梯度下降法来观察theta参数结果;
梯度下降算法代码实现如图:

在这里插入图片描述

X:对于线性回归中的常量b,我们可以将它的系数视为1,然后和变量x组成一个m行3列的矩阵,其中m是数据规模,这个矩阵就是X。
Y:一个m行1列的矩阵,对应是否录取。
alpha:学习率
第一步,将我们的Θ初始化为[[0][0][0]]。
第二步,对于给定的步长alpha和此时的梯度gradient,更新我们的theta。然后计算此时thrta对应的梯度更新gradient。
第三步,重复第二步30万次
第四步,返回theta,即为我们线性回归的参数。

但是,对于逻辑回归来说,这里遇到了一个问题,那就是alpha和迭代次数的取值,如果alpha过小,损失函数将收敛的非常慢,迭代次数达到40万时才勉强收敛,但如果alpha过大,又会导致过大的步长使得准确率下降;
alpha = 0.001时的收敛函数,在50万次时收敛: 0.005时在25万次时收敛;

在这里插入图片描述

而如果alpha继续增大(如0.01),将导致不够准确,其界限与收敛图形如下:

在这里插入图片描述

(界限太差,仅80%准确率,且需要20万次迭代)
因此,我们在运行该数据时需要运行稍长的时间;alpha=0.005,迭代次数为30万时可以得到一组回归参数:

在这里插入图片描述

它的划分边界如图所示,其准确率为92%:该参数的划分准确率计算方法如下:

在这里插入图片描述

测试准确率:

在这里插入图片描述

比较简单,预测正确则加一,最后除以全部样本数。

(2)牛顿迭代法

因为上述的迭代下降法所需迭代次数过多,因此这里使用一种优化方法来求解参数;

方法介绍

牛顿迭代法的原理较为复杂,因此不在这里写出来。
对比这牛顿迭代法方法与梯度下降法的参数更新公式可以发现,两种方法不同在于牛顿法中多了一项二阶导数,这项二阶导数对参数更新的影响主要体现在 改变参数更新方向上。

在这里插入图片描述

如图所示,红色是牛顿法参数更新的方向,绿色为梯度下降法参数更新方向,因为牛顿法考虑了二阶导数,因而可以找到更优的参数更新方向,在每次更新的步幅相同的情况下,可以比梯度下降法节省很多的迭代次数。
迭代过程:

在这里插入图片描述

代码实现

在这里插入图片描述

h值为sigmoid函数求得的概率;
J为一阶偏导数
H为Hession矩阵(海森矩阵),二阶偏导数

牛顿迭代法得到的theta:

在这里插入图片描述

优点

对于同样的学习率alpha = 0.005,cost仅需要1000次迭代就差不多收敛了;
而如果放大alpha,如alpha = 0.5,那么它只需要迭代10次即可收敛。

在这里插入图片描述

并且准确率保持在89%(数据较小);

3. 某学生两次考试成绩分别为 42、85,预测其被录取的概率

这里直接使用sigmoid函数以及牛顿迭代法求得的theta来进行其概率的计算:

在这里插入图片描述

得到结果:

在这里插入图片描述

即,y=1的概率为0.65145509,也就是被录取的概率

4. 画出分类边界

在上面已经画出了梯度下降法的分类边界,这里给出牛顿迭代法的边界

在这里插入图片描述

到此这篇关于Python机器学习之逻辑回归的文章就介绍到这了,更多相关Python逻辑回归内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python机器学习之逻辑回归

本文链接: https://www.lsjlt.com/news/125596.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python机器学习之逻辑回归
    目录一、题目二、目的三、平台四、基本原理4.1 逻辑回归4.2 损失函数五、实验步骤一、题目 1.主题:逻辑回归 2.描述:假设你是某大学招生主管,你想根据两次考试的结果决定每个申请...
    99+
    2022-11-12
  • Python机器学习之逻辑回归的示例分析
    这篇文章主要介绍了Python机器学习之逻辑回归的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Python主要用来做什么Python主要应用于:1、Web开发;2、...
    99+
    2023-06-15
  • python机器学习逻辑回归随机梯度下降法
    目录写在前面随机梯度下降法参考文献写在前面 随机梯度下降法就在随机梯度上。意思就是说当我们在初始点时想找到下一点的梯度,这个点是随机的。全批量梯度下降是从一个点接着一点是有顺序的,全...
    99+
    2022-11-12
  • python机器基础逻辑回归与非监督学习
    目录一、逻辑回归1.模型的保存与加载2.逻辑回归原理①逻辑回归的输入②sigmoid函数③逻辑回归的损失函数④逻辑回归特点3.逻辑回归API4.逻辑回归案例①案例概述②具体流程5.逻...
    99+
    2022-11-12
  • 机器学习实战:Python基于Logistic逻辑回归进行分类预测(一)
    目录 1 前言1.1 Logistic回归的介绍1.2 Logistic回归的应用 2 iris数据集数据处理2.1 导入函数2.2 导入数据2.3 简单数据查看 3 可视化3.1...
    99+
    2023-09-26
    python 回归
  • python机器学习之线性回归详解
    目录一、python机器学习–线性回归二、OLS线性回归2.1 Ordinary Least Squares 最小二乘法2.2 OLS线性回归的代码实现三、梯度下降算法3.1 GDL...
    99+
    2022-11-12
  • 机器学习:逻辑回归模型算法原理(附案例实战)
    机器学习:逻辑回归模型算法原理 作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍 ...
    99+
    2023-10-08
    机器学习 逻辑回归 python 算法 开发语言
  • python中逻辑回归与非监督学习的示例分析
    这篇文章将为大家详细讲解有关python中逻辑回归与非监督学习的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、逻辑回归1.模型的保存与加载模型训练好之后,可以直接保存,需要用到joblib库。...
    99+
    2023-06-25
  • python人工智能深度学习入门逻辑回归限制
    目录1.逻辑回归的限制2.深度学习的引入3.深度学习的计算方式4.神经网络的损失函数1.逻辑回归的限制 逻辑回归分类的时候,是把线性的函数输入进sigmoid函数进行转换,后进行分类...
    99+
    2022-11-12
  • Python 机器学习之线性回归详解分析
    为了检验自己前期对机器学习中线性回归部分的掌握程度并找出自己在学习中存在的问题,我使用C语言简单实现了单变量简单线性回归。 本文对自己使用C语言实现单变量线性回归过程中遇到的问题和心...
    99+
    2022-11-12
  • 机器学习:基于逻辑回归对超市销售活动预测分析
    系列文章目录 作者:i阿极 作者简介:Python领域新星作者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍 📜📜📜如果有小伙伴需要数据集和...
    99+
    2023-09-28
    机器学习 逻辑回归 python 开发语言
  • 机器学习:基于逻辑回归对某银行客户违约预测分析
    机器学习:基于逻辑回归对某银行客户违约预测分析 作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+...
    99+
    2023-09-21
    机器学习 逻辑回归 python 开发语言
  • 机器学习:基于逻辑回归对优惠券使用情况预测分析
    机器学习:基于逻辑回归对优惠券使用情况预测分析 作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒...
    99+
    2023-08-31
    机器学习 逻辑回归 人工智能 python
  • 机器学习-线性回归
      ~~~不积跬步,无以至千里~~~ 为了更好的学习线性回归,首先复习一次函数的特性:     什么是线性回归? 假设现在有一些数据点,我们利用一条直线对这些点进行拟合(该线称为最佳拟合直线),这个拟合过程就称作为回归,如下图所示:  ...
    99+
    2023-01-30
    线性 机器
  • 机器学习——线性回归
    1 from sklearn.externals import joblib 2 from sklearn.model_selection import train_test_split 3 from sklearn....
    99+
    2023-01-30
    线性 机器
  • 【机器学习】线性回归
    Model Representation 1、问题描述2、表示说明3、数据绘图4、模型函数5、预测总结附录 1、问题描述 一套 1000 平方英尺 (sqft) 的房屋售价为300,000美元,一套 2000 平方英尺的房屋...
    99+
    2023-08-23
    机器学习 线性回归 人工智能
  • 机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析
    基于逻辑回归对股票客户流失预测分析 作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能...
    99+
    2023-08-31
    机器学习 逻辑回归 python 原力计划
  • python机器学习Logistic回归原理推导
    目录前言Logistic回归原理与推导sigmoid函数目标函数梯度上升法Logistic回归实践数据情况训练算法算法优缺点前言 Logistic回归涉及到高等数学,线性代数,概率论...
    99+
    2022-11-11
  • python机器学习Logistic回归原理是什么
    这篇“python机器学习Logistic回归原理是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python机器学习L...
    99+
    2023-07-02
  • python机器学习基础线性回归与岭回归算法详解
    目录一、什么是线性回归1.线性回归简述2.数组和矩阵数组矩阵3.线性回归的算法二、权重的求解1.正规方程2.梯度下降三、线性回归案例1.案例概述2.数据获取3.数据分割4.数据标准化...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作