Scikit-Learn线性回归(一)

Scikit-Learn线性回归一

    • 1、线性回归概述
      • 1.1、什么是回归
      • 1.2、什么是线性
      • 1.3、什么是线性回归
      • 1.4、线性回归的优缺点
      • 1.5、线性回归与逻辑回归
    • 2、线性回归的原理
      • 2.1、线性回归的定义与原理
      • 2.2、线性回归的损失函数
    • 3、Scikit-Learn线性回归
      • 3.1、Scikit-Learn线性回归API
      • 3.2、Scikit-Learn线性回归初体验
      • 3.3、线性回归简单案例(波士顿房价预测)
    • 4、附录



1、线性回归概述


线性回归(Linear Regression)是很基础的机器学习算法。线性回归在机器学习知识结构中的位置如下:

在这里插入图片描述

1.1、什么是回归


回归(Regression)是一种应用广泛的预测建模技术,这种技术的核心在于预测的结果是连续型变量

回归是监督学习中的一个重要问题,用于预测输入变量(自变量)和输出变量(因变量)之间的关系,特别是当输入变量的值发生变化时,输出变量的值随之发生的变化,回归模型正是表示从输入变量到输出变量之间映射的函数

其中,自变量表示主动操作的变量,可以看做因变量的原因。因变量因为自变量的变化而变化,可以看做自变量的结果

回归问题的学习等价于函数拟合:选择一条函数曲线,使其很好地拟合已知数据且很好地预测未知数据

回归的目的是为了预测,比如预测明天的天气温度,预测股票的走势…

回归之所以能预测是因为他通过历史数据,摸透了“套路”,然后通过这个套路来预测未来的结果

在这里插入图片描述

1.2、什么是线性


“越…,越…”,符合这种说法的就可能是线性个关系,例如,房子越大,价格就越高

但是并非所有“越…,越…”都是线性的,例如,“充电越久,电量越高”,它就类似下面的非线性曲线:

在这里插入图片描述

线性关系不仅仅只能存在2个变量(二维平面)。3个变量时(三维空间),线性关系就是一个平面,4个变量时(四维空间),线性关系就是一个体。以此类推…

在这里插入图片描述

1.3、什么是线性回归


线性回归本身是统计学里的概念,现在经常被用在机器学习中

在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方和函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析,这种函数是一个或多个被称为回归系数的模型参数的线性组合 。只有一个自变量时称为简单回归,大于一个自变量时称为多元回归

如果2个或者多个变量之间存在“线性关系”,那么我们就可以通过历史数据,摸清变量之间的“套路”,建立一个有效的模型,来预测未来的变量结果

在这里插入图片描述

1.4、线性回归的优缺点


优点:

  • 建模速度快,不需要很复杂的计算,在数据量大的情况下依然运行速度很快
  • 可以根据系数给出每个变量的理解和解释

缺点:

  • 不能很好地拟合非线性数据。所以需要先判断变量之间是否是线性关系

为什么在深度学习大杀四方的今天还使用线性回归呢?

一方面,线性回归所能够模拟的关系其实远不止线性关系。线性回归中的“线性”指的是系数的线性,而通过对特征的非线性变换,以及广义线性模型的推广,输出和特征之间的函数关系可以是高度非线性的。另一方面,也是更为重要的一点,线性模型的易解释性使得它在物理学、经济学、商学等领域中占据了难以取代的地位

1.5、线性回归与逻辑回归


线性回归和逻辑回归是2种不同的经典算法。经常被拿来做比较,下面整理了一些两者的区别:

项目解决问题类型变量类型线性关系表达变量关系
线性回归回归连续符合线性关系直观表达变量关系
逻辑回归分类离散可以不符合线性关系无法直观表达变量关系
  • 线性回归只能用于回归问题,逻辑回归虽然名字叫回归,但是更多用于分类问题(关于回归与分类的区别参考文章:传送门)
  • 线性回归要求因变量是连续性数值变量,而逻辑回归要求因变量是离散的变量
  • 线性回归要求自变量和因变量呈线性关系,而逻辑回归不要求自变量和因变量呈线性关系
  • 线性回归可以直观的表达自变量和因变量之间的关系,逻辑回归则无法表达变量之间的关系

2、线性回归的原理

2.1、线性回归的定义与原理


线性回归的定义及原理推导详见文章:传送门

2.2、线性回归的损失函数


损失函数(Loss Function),也称成本函数(Cost Function),描述的是模型的预测值与真实值的差异,并将这种差异映射为非负实数以表示模型可能带来的“风险”或“损失”。机器学习中将损失函数作为模型拟合好坏的评判准则,并通过最小化损失函数求解和评估模型

在多元线性回归中,其损失函数定义如下:
L = ∑ i = 1 m ( y i − f ( x i ) ) 2 L=\sum_{i=1}^m(y_i-f(x_i))^2 L=i=1m(yif(x

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/577060.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

POST请求为什么会发送两次

在前端开发中,我们经常会遇到POST请求会发送两次的情况。这种问题可能会导致数据错误或其他意料之外的结果,让开发者感到困惑和不安。本文将深入探讨POST请求为何会发送两次的原因,并从以下几个方面进行解释:同源策略、简单请求、…

C 语言教程:条件和 if...else 语句

C 语言中的条件和 if…else 语句 您已经学习过 C 语言支持数学中的常见逻辑条件&#xff1a; 小于&#xff1a;a < b小于或等于&#xff1a;a < b大于&#xff1a;a > b大于或等于&#xff1a;a > b等于&#xff1a;a b不等于&#xff1a;a ! b 您可以使用这些…

将ncnn及opencv的mat存储成bin文件的方法

利用fstream&#xff0c;将ncnn及opencv的mat存储成bin文件。 ncnn::Mat to bin std::ios::binary标志指示文件以二进制模式进行读写&#xff0c; std::ofstream file("output_x86.bin", std::ios::binary); 将input_mat中的宽、高和通道数分别赋值给width、heig…

华清远见嵌入式学习——ARM——作业3

作业要求&#xff1a; 代码效果图&#xff1a; 代码&#xff1a; led.h #ifndef __LED_H__ #define __LED_H__#define RCC_GPIO (*(unsigned int *)0x50000a28) #define GPIOE_MODER (*(unsigned int *)0x50006000) #define GPIOF_MODER (*(unsigned int *)0x50007000) #defi…

使用 Amazon CodeCatalyst 中的生成式 AI 助手 Amazon Q 提高开发人员的工作效率(预览版)

今天&#xff0c;我很荣幸能够向各位介绍 Amazon CodeCatalyst 中可用的新型生成式 AI 助手 Amazon Q&#xff0c; 主要用于加速软件分发。 加速软件功能开发 – Amazon Q 的这项功能开发技术可以帮助您快速地完成软件开发任务&#xff0c;例如添加注释和 README、优化问题描述…

TensorFlow 模型中的回调函数与损失函数

回调函数 tf.keras 的回调函数实际上是一个类&#xff0c;一般是在 model.fit 时作为参数指定&#xff0c;用于控制在训练过程开始或者在训练过程结束&#xff0c;在每个 epoch 训练开始或者训练结束&#xff0c;在每个 batch 训练开始或者训练结束时执行一些操作&#xff0c;…

Java 中 Optional 类的使用

一、为什么使用 Optional 类&#xff1f; Optional 类被引入主要是为了解决空指针异常&#xff08;NullPointerException&#xff09;的问题。在实际开发中&#xff0c;由于方法返回值可能为空&#xff0c;或者在处理数据时可能存在空值的情况&#xff0c;如果不加以处理&#…

GIT 不同仓库之间合并代码

合并两个不同仓库的代码通常需要以下步骤。这里以合并两个远程仓库为例&#xff1a; 添加远程仓库&#xff1a; 在本地仓库中&#xff0c;使用以下命令添加第二个远程仓库&#xff1a; git remote add <远程仓库名> <远程仓库URL>例如&#xff1a; git remote add …

【vue-超出内容时 el-tooltip 提示框才显示,没有超出不显示】

使用disabled属性控制el-tooltip的content显示与隐藏 <div v-for"(item,index) in treeData" :key"item.id" click.stop"changeChecked(item)"><el-card shadow"hover" :class"[{ select-item: item.checked }, list-i…

国内厉害的游戏开发公司有哪些?

中懿游游戏软件开发,中国有许多厉害的游戏开发公司&#xff0c;其中一些在国际上也享有盛誉。以下是一些在中国游戏开发领域中备受关注的公司&#xff1a; 腾讯游戏&#xff08;Tencent Games&#xff09;&#xff1a; 作为中国最大的互联网公司之一&#xff0c;腾讯的游戏分支…

视觉学习(6) —— 接收事件规则列表

条件&#xff1a; 两个地址 绑定地址1&#xff0c;条件是值为1才执行流程 &#xff08;1&#xff09;字节起止位置为 0-0 向100写入值1&#xff0c;流程次数是否会增加 答案是不会&#xff0c;字节0是在哪里 所以当写入值1 而因为字节起止位置是0 0 &#xff0c;所以只读字…

前端项目重构的深度思考和复盘

摘要&#xff1a; 项目重构是每一家稳定发展的互联企业的必经之路, 就像一个产品的诞生, 会经历产品试错和产品迭代 一样, 随着业务或新技术的不断发展, 已有架构已无法满足更多业务扩展的需求, 所以只有通过重构来让产品“进化”, 才能跟上飞速发展的时代浪潮. 技术因素 早期…

UG NX12 3D图形制图并导出2D图纸

UG NX12 3D图形制图并导出2D图纸 大致步骤&#xff1a; 1、制图——新建图纸页——根据导航制图 注意图纸比例&#xff0c;导航中的父视图即主视图&#xff0c;根据实际情况布置三视图&#xff1b; 2、剖视图&#xff1a;三视图上右键选择绘制剖视图&#xff0c;根据剖视图导航…

W5500-EVB-Pico评估版介绍

文章目录 1 概述2 板载资源2.1 硬件规格2.2 硬件规格2.3 工作条件 3 参考资料3.2 原理图3.3 尺寸图 (单位 : mm)3.4 参考例程 4 硬件协议栈优势 1 概述 W5500-EVB-Pico是基于树莓派RP2040和完全硬连线TCP/IP控制器W5500的微控制器开发板-基本上与树莓派Pico板相同&#xff0c;但…

【MATLAB库函数系列】线性调频Z(Chirp-Z,CZT)的MATLAB源码和C语言实现

在上一篇博客 【数字信号处理】线性调频Z(Chirp-Z,CZT)算法详解 已经详细介绍了CZT变换的应用背景和原理,先回顾一下: 回顾CZT算法 采用 FFT 算法可以很快计算出全部 N N N点 DFT 值,即Z变换 X ( z ) X(z) <

ControlTemplate.Triggers和Style.Triggers在WPF中有不同的作用

ControlTemplate.Triggers ControlTemplate是用于定义控件外观和行为的重要部分&#xff0c;它包含了控件的可视化结构和相关的触发器。ControlTemplate.Triggers允许我们在控件模板内部定义触发器&#xff0c;当特定条件满足时&#xff0c;触发器可以改变控件的外观或行为。C…

220v电源转换12v和24v用什么芯片

问&#xff1a;将220V电源转换为12V和24V - 使用什么芯片&#xff1f; 答&#xff1a;常用于将220V电源转换为12V和24V的芯片是AH8669和AH8665。 问&#xff1a;AH8669芯片提供了什么特点&#xff1f; 答&#xff1a;AH8669芯片适用于最大电流为700mA的应用。它内置了MOSFET…

5.Redis管道(pipeline)

5.Redis管道&#xff08;pipeline&#xff09; 如何优化频繁命令往返造成的性能瓶颈&#xff1f; 引出管道这个概念 管道&#xff08;pipeline&#xff09;可以一次性发送多条命令给服务端&#xff0c;服务端依次处理完毕后&#xff0c;通过一条响应一次性结果返回&#xff0…

01-黑马程序员大数据开发

一. Hadoop概述 1. 什么是大数据 &#xfeff;狭义上&#xff1a;对海量数据进行处理的软件技术体系&#xfeff;广义上&#xff1a;数字化、信息化时代的基础支撑&#xff0c;以数据为生活赋 2. 大数据的核心工作&#xff1a; &#xfeff;存储&#xff1a;妥善保存海量待…

【反爬大核弹】大厂策划们,我来教教你们如何让网站反爬虫

反爬虫反调试小结&#xff1a; 敢爬我的网站&#xff0c;我就炸了你的电脑&#xff01;闪花你的双眼。 大家好&#xff0c;这一集我们来学一些非常实用的反爬小妙招。 首先我们来回顾一些非常低级的反爬&#xff0c;有的禁止右键&#xff0c;有的禁止F12&#xff0c;但是我们还…