线性回归和逻辑回归(LR)

2023-10-27

回归就是输出值是连续的而不是离散的,如果是离散值,就是分类问题。

 

1、线性回归:

(1)定义

\给定数据集D={(x1,y1),(x2,y2)...},线性回归尝试学习到一个线性模型,尽可能地输出正确标记。

线性回归无非就是在N维空间中找一个形式像直线方程一样的函数来拟合数据而已。比如说,横坐标代表房子的面积,纵坐标代表房价。线性回归就是要找一条直线,并且让这条直线尽可能地拟合图中的数据点。找直线的过程就是在做线性回归。

(2)损失函数

既然是找直线,那肯定是要有一个评判的标准,来评判哪条直线才是最好的。只要算一下实际房价和我找出的直线根据房子大小预测出来的房价之间的差距就行了。说白了就是算两点的距离,用欧式距离计算两点之间的距离,并对所有样本的距离进行加和

在ML中称它为损失函数(就是计算误差的函数)。那有了这个函数,我们就相当于有了一个评判标准,当这个函数的值越小,就越说明我们找到的这条直线越能拟合我们的房价数据。所以说啊,线性回归无非就是通过这个损失函数做为评判标准来找出一条直线。

参考地址:https://blog.csdn.net/alw_123/article/details/82193535

 

2、逻辑回归:

(1)逻辑回归不是回归,逻辑回归就是用回归来做二分类任务

前面说到,回归任务是结果为连续型变量的任务,logistics regression是用来做分类任务的,为什么叫回归呢?

其实,逻辑回归就是用回归的办法来做分类的,它将回归值y放入sigmoid函数中,输出值在 0 到 1 之间,表示样本类别的概率。

(2)定义

逻辑回归基于概率理论,比如回归函数为 y=wx+b,逻辑回归会将回归值 y 放入sigmoid函数中,映射成0 - 1之间的值。它的输出可以看作是样本为正类的概率,选定阈值,大于这个阈值我们就认为它是正类。它可以通过极大似然估计的方法估计出最可能的参数的值。

sigmoid函数可以点击链接:https://blog.csdn.net/qq_32172681/article/details/97936956

逻辑回归为什么使用sigmoid?https://blog.csdn.net/qq_32172681/article/details/101080628

极大似然估计点击链接:https://blog.csdn.net/qq_32172681/article/details/98037944

 

3、逻辑回归损失函数及其推导过程

参考地址:https://blog.csdn.net/weixin_41537599/article/details/80585201#commentsedit

函数定义

推导过程如下

假定输入样本x,用y^表示训练样本x条件下预测y=1的概率,用1-y^表示训练样本x条件下预测y=0的概率,即:

把这两个公式合并成一个公式,在y=1时公式右边等于y^,在y=1时公式右边等于1-y^。

由于log函数是严格递增函数,所以最大化log等价于最大化原函数,上式因此可以化简为损失函数的负数。即:

(公式中间是加号)

用极大似然估计求解参数,所以最大化似然函数就是最小化损失函数,由于似然函数是联合概率密度函数,对于m个样本的整个训练集,服从独立同分布的样本的联合概率(似然函数)就是每个样本的概率的乘积:

  这个函数就是我们逻辑回归(logistics regression)的损失函数,我们叫它交叉熵损失函数。

 

4、求解交叉熵损失函数

参考:https://blog.csdn.net/weixin_39445556/article/details/83930186

求解损失函数的办法我们还是使用梯度下降。

求解步骤如下:

  •   随机一组W
  •   将W带入交叉熵损失函数,让得到的点沿着负梯度的方向移动
  •   循环第二步

求解梯度部分同样是对损失函数求偏导,过程如下:

         

交叉熵损失函数的梯度和最小二乘的梯度形式上完全相同,区别在于,此时的 h_{\Theta}(x) = g(z),而最小二乘的 h_{\Theta} = W^{T}X

梯度下降推导过程:https://blog.csdn.net/weixin_39445556/article/details/83661219

 

5、逻辑回归中的参数估计

对于有标签数据而言,就是已知结果值y,求可以得到这个正确结果的最可能的参数w,最先想到的就是最大似然估计。最大似然估计可以点击链接:https://blog.csdn.net/qq_32172681/article/details/98037944

 

6、逻辑回归举例

参考地址:https://baijiahao.baidu.com/s?id=1628902000717534995&wfr=spider&for=pc

以下为研究一个学生优秀还是差等的问题,已知训练数据的学生基本特征信息如下:

需要预测分类的学生数据如下:

(1)数据归一化处理,方便训练,且将评级优表示为1,评级差表示为0,原数据表示为:

(2)假设使用的网络模型为:

设置参数初始值为(0.5,0.5,0.5,0.5),计算损失函数。设置学习率为0.3,并且当损失函数为0.1时,迭代停止截止。

(3)第一次迭代的值为(-0.096,0.50008,-0.32,0.350858),不断迭代,直到损失函数小于0.1。

(4)最终确定参数的值和网络模型Y(x)的表达式,计算待预测数据的值:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线性回归和逻辑回归(LR) 的相关文章

  • Python字符串、集合练习_密码校验

    校验密码是否合法 1 输入一个密码要求长度在5 10位 len 2 密码里面必须包含 大写字母 小写字母和数字 字符串方法或者集合 3 最多输入5次 for 用字符串方法实现 for i in range 5 passwd input 请输
  • 数据库分库分表的应用场景及方法分析

    数据库分库分表的应用场景及方法分析 一 数据库经常面临的问题 二 解决方法的思量 三 急剧膨胀的业务及数据量的影响 以电商领域为例 订单库将订单相关的数据 订单销售 订单售后 订单任务处理等数据 都放在一个数据库 中 对于订单的销售数据 性

随机推荐

  • ArrayList和LinkedList的区别

    ArrayList 基于动态数组 连续内存存储 适合下标访问 随机访问 因为里面存的元素的类型是一致的 所以内存长度是固定的 所以很快就能找到具体位置的元素 扩容机制 因为数组长度固定 超出长度存数据时需要新建数组 然后将老数组的数据拷贝到
  • 第一个只出现一次的字符

    在一个字符串 1 lt 字符串长度 lt 10000 全部由字母组成 中找到第一个只出现一次的字符 并返回它的位置 public class Solution public int FirstNotRepeatingChar String
  • 【torch报错】OSError: [WinError 127] The specified procedure could not be found. Error loading

    导入torch等库的时候报错OSError WinError 127 The specified procedure could not be found Error loading E anaconda3 envs py3 10 lib
  • mybatis讲解(2)之动态SQL的运用

    目录 经典面试题 1 mybatis动态sql 2 模糊查询 3种方式 3 查询返回结果集 总结 前言 在我上篇已经学习了Mybatis简介以及如何去连接数据库 具有增删改查的方法 那么我们今天来学习Mybatis的第二节关于1 mybat
  • 涉密服务器监控系统,涉密场所检查时有哪些注意事项?

    对举办涉密会议和活动的场所以及保密要害部门部位的环境进行检查 是保密技术检查的重要内容 涉密场所保密检查主要包括 门禁和监控系统的检查 异常无线信号检查 涉密场所周边环境的安全性检查 涉密场所隐藏电子设备的检查 隐藏摄像设备检查 电源的检查
  • 计算机算法设计与分析期末试题,算法设计与分析期末考试试卷(D卷)(含答案).doc...

    算法设计与分析期末考试试卷 D卷 一 选择题 0分 每题分 D A n2 2 2n的渐进表达式上界函数是O 2n B n2 2 2n的渐进表达式下界函数是 2n C logn3的渐进表达式上界函数是O logn D logn3的渐进表达式下
  • setter方法的内部实现【不要在init和dealloc函数中使用accessor】

    Objective C 2 0 增加了dot syntax 用于简单地调用成员变量的accessor 相当于java的getter和setter 因为正常情况下 写一个accessor对于初学者来说 还是挺容易犯错的 比如有一个NSStri
  • el-table多选+搜索

    一 问题描述 表格数据是一次性从后端获取到了全部的数据 可前端假分页 在模糊检索表格数据时 因为el table的数据源data发生了变化 重新触发了 selection change事件 此时如果仅仅是在 selection change
  • 27黑马QT笔记之QPixmap和QBitmap的区别

    27黑马QT笔记之QPixmap和QBitmap的区别 前提 首先我们先要了解什么是透明和不透明的图片 1 透明是指显示后与背景颜色一样的 2 不透明就是有自己的颜色 与背景颜色不一样 看下图 前者就是透明的 后者是背景是白色的 是不透明的
  • 详解Python中的三元运算

    详解Python中的三元运算 什么是三元运算符 在大部分编程语言中都有三目运算 也称三元运算 Python语言从Python2 5版本开始也引入了三元运算符 在Python中 三元运算也称为条件表达式 语法如下 true expressio
  • 文件后缀和MIME

    id 后缀名 MIME 0 gif image gif 1 jpg image jpeg 2 png image png 3 bmp image bmp 4 psd application octet stream 5 ico image
  • 锂电池保护板的分类有哪些?

    对于锂电池保护板的认识很多人也是一知半解 并不清楚锂电池保护板具有哪些分类结构 对于如何选择锂电池保护板有些朋友不知道从哪方面着手 那么今天专业生产锂电池保护的锂盾电子带着大家去了解下保护板的分类到底怎样去区分的 保护板可以分为三种种类 三
  • [tensorflow]从Keras加载、保存模型、显示模型权重

    import tensorflow as tf 构建模型 并加载imagenet预训练权重 base model tf keras applications InceptionV3 include top False weights ima
  • python怎么画折线图

    要在 Python 中绘制折线图 你可以使用 matplotlib 库中的 plot 函数 首先 你需要安装 matplotlib 库 这可以使用 pip 包管理器来完成 在终端或命令提示符中输入以下命令 pip install matpl
  • 毛坯房装修

    86平的房子带上家具大概在8 12万左右 硬装 即地面 墙面这些地方瓷砖 水电等装修s 软装 即家具 门框 窗帘等木材 布艺类 全屋定制一般是指 在设计上整体搭配设计 根据整体的设计来定做家具 全屋定制 2 5万 电器 2 5万 5万 窗帘
  • vuex是什么

    vuex是什么 一 vuex是什么 什么是vuex 一 vuex是什么 1 Vuex 是一个专为 Vue js 应用程序开发的状态管理模式 它由五部分组成 分别是 state actions mutations getters module
  • Electron官方实验工具Electron Fiddle

    如果开发者想验证一段简短的代码是否可以在Electron框架内正常运行 那么自己创建个Electron项目 再搞个开发调试环境 就太麻烦了 Electron官方团队为开发者提供了一个更快捷的创建项目并进行试验的工具 Electron Fid
  • 豪华气派!这些院校的图书馆也太美了!

    博尔赫斯曾经说过 我心里一直都在暗暗设想 天堂应该是图书馆的模样 图书馆作为校园里的重要建筑 可以说是大学的门面 很多同学在择校时也会重点关注学校的图书馆 把它作为了解学校底蕴的通道和入口 今天我们就来看看各大高校的神仙图书馆吧 北京大学图
  • ffmpeg vscode debug编译错误【已解决】

    1 make no targets Stop 修改方式 make j N 这个N查看本机有多少个核 问题查找参考链接 https github com openresty openresty issues 22 2 the EAI MEMO
  • 线性回归和逻辑回归(LR)

    回归就是输出值是连续的而不是离散的 如果是离散值 就是分类问题 1 线性回归 1 定义 给定数据集D x1 y1 x2 y2 线性回归尝试学习到一个线性模型 尽可能地输出正确标记 线性回归无非就是在N维空间中找一个形式像直线方程一样的函数来