机器学习第一道菜(一):线性回归的理论模型

机器学习第一道菜(一):线性回归的理论模型

  • 一、问题:千金买笑
    • 1.1 散点图
    • 1.2 机器学习能搞啥
  • 二、模型的建立
    • 2.1 线性回归
    • 2.2 回归模型

前面讲了机器学习的“四大绝技”,今天,开始研究第一绝技“回归”,这篇文章就从最简单的线性回归开始讲起。

一、问题:千金买笑

1.1 散点图

以追女孩为例,假设送的礼物越贵,妹子对我们抱以微笑的时候就越多。也就是说,二者成线性关系:妹子的微笑次数是礼物金额的一次函数。
假设某君实际统计了一系列礼物金额与微笑次数的数据,并画出散点图:
在这里插入图片描述
现在交给你个任务,请回答:送6000元礼物能有多少次微笑回馈。
这个问题很简单,一眼就能看个差不离,大概四五十次的样子。
在这里插入图片描述

1.2 机器学习能搞啥

那能不能根据已有数据,找出一条最佳直线来表示礼物金额和微笑次数的函数关系呢?如果找到了这条线,不就可以预测出要花多少钱就能让妹子对我们笑一万次了吗?
这就是机器学习要做的事情:分析数据找规律。
只不过呢,机器学习可能会有点意见,认为解这道题有点大材小用。
在这里插入图片描述
咱们这样简化处理纯为方便理解,现实生活中可能有1000个影响因素,还拿妹子的微笑来说,真是你花钱就能买到的吗?可能你扶个老妹妹过马路,被妹子看到都会大方地给你个微笑。

二、模型的建立

2.1 线性回归

不管是简单版还是复杂版,类似这样的问题都属于机器学习的回归任务。回归就是要找到一条函数曲线,去近似模拟真实世界的规律。有关回归更详细的介绍参见:【深度解析】机器学习的“四大绝技”
这些已有的离散点越多,机器学习吃得越饱,模拟得也就越精确。找到了这条曲线,就可以用来预测未来下一个点会打在什么地方,或者某个条件下点会打在什么地方。
不过咱们要找的线不是什么复杂的曲线,而是一条直线,像这样的回归问题叫“线性回归”。
因为两点确定一条直线,显然,对于上面的散点图来说,不可能找到一条完美的直线,通过所有点。这很好理解,妹子的微笑不可能完全由一根直线决定,因此这些点是有噪声的。
我们要找的应该是类似下图的一条直线:
在这里插入图片描述
这个过程在数学中叫“拟合”。

2.2 回归模型

一次函数的表达式为y=kx+b,其中k是斜率、b是截距。
只要确定了斜率和截距,一次函数的图像形状也就确定了,因此我们要做的就求出k和b。
NO,NO,NO。
这里我们要来个画风突变。
在机器学习的世界里,我们要用统计学的风格来表达函数关系,将表达式写成下面的形式:
y = θ 0 + θ 1 x y=\theta_0 + \theta_1x y=θ0+θ1x
θ \theta θ读作“西塔(theta)”,就是接下来我们要求的未知数(或者叫参数)。
为什么要搞个“西塔”出来,还要带下标呢?有两个原因:
(1)命名习惯。在统计学领域,常使用θ来表示未知数和推测值。
(2)队伍多了不好带。如果函数有很多项,那就会大量出现a、b、c、d…这样的符号,显得很混乱,就像一支军队个个都穿得花里胡哨的。此外,如果有1000项,集齐全世界的符号都不够用了,而用数字做下标就不存在问题了。所以,为了整齐划一、多带队伍,就得统一军装,并下发编号。
现在机器学习的理论模型就算搭建好了,接下来要做的就是不断地给机器喂x、y,让它求出 θ \theta θ的过程。
怎么计算呢?
计算机也不知道给多大的值合适,那就先随便给个随机值,比如设 θ 0 = 1 \theta_0=1 θ0=1 θ 1 = 2 \theta_1=2 θ1=2,则表达式变为:
y = 1 + 2 x y=1 + 2x y=1+2x
然后开始喂数据,假设把x=2000代入表达式,则:
y = 1 + 2 x = 1 + 2 × 2000 = 4001 y=1 + 2x =1 + 2\times2000 =4001 y=1+2x=1+2×2000=4001
这差得也太远了吧,从图上看y的实际值也就应该20左右的样子。
计算值与实际值差别大,就说明刚才假设 θ 0 = 1 \theta_0=1 θ0=1 θ 1 = 2 \theta_1=2 θ1=2是不正确的,这就需要调整 θ 0 \theta_0 θ0 θ 1 \theta_1 θ1的值,使计算值与实际值的差最小。
只使这一组数据的差值最小显然不行,应该使所有数据的差都尽量的小。
怎么办呢?聪明的你肯定能想到,那就对所有数据的差求和,只要这个和最小就可以了。
这就需要用到“最小二乘法”,咱们以后再说。

:有关机器学习的其他文章
数据分析vs机器学习
离程序库越近,离真理越远
TensorFlow的简明介绍:机器学习界的谷大拿
机器学习与人工智能的关系
机器学习的爆发秘密
【深度解析】机器学习的“四大绝技”

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

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

相关文章

【Python】数据容器:列表,元组,字符串,集合字典及通用操作

文章目录 一.序列1.1list列表定义常用操作列表的遍历 1.2tuple元组定义常见操作元组的遍历 1.3str字符串定义常见操作字符串的遍历 1.4序列常用操作——切片 二.set集合定义常见操作集合的遍历 三.dict字典定义常用操作字典的嵌套 *数据容器对比总结四.数据容器的通用操作4.1通…

用 Python 自动化处理日常任务

💖 欢迎来到我的博客! 非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长…

java day04-面向对象基础(内存 封装 继承 修饰符 工具类 )

1.对象内存图 1.1 Java 内存分配 1.2 堆和栈 栈:所有局部变量都会在栈内存中创建 局部变量:定义在方法中的变量或者方法声明上的变量 方法执行都会加载到栈中进行 -----------------------------------------------------------------------------------------…

Qt/C++进程间通信:QSharedMemory 使用详解(附演示Demo)

在开发跨进程应用程序时,进程间通信(IPC)是一个关键问题。Qt 框架提供了多种 IPC 技术,其中 QSharedMemory 是一种高效的共享内存方式,可以实现多个进程之间快速交换数据。本文将详细讲解 QSharedMemory 的概念、用法及…

从前端视角看设计模式之创建型模式篇

设计模式简介 "设计模式"源于GOF(四人帮)合著出版的《设计模式:可复用的面向对象软件元素》,该书第一次完整科普了软件开发中设计模式的概念,他们提出的设计模式主要是基于以下的面向对象设计原则&#xff…

Pandas数据合并:concat与merge

目录 一、concat方法 1. 基本语法 2. 示例 示例1:按行合并(垂直方向) 示例2:按列合并(水平方向) 示例3:使用joininner进行内连接 示例4:处理列名冲突 二、merge方法 1. 基本…

docker的数据卷与dockerfile自定义镜像

docker的数据卷与dockerfile自定义镜像 一. docker的数据卷数据卷容器 二. dockerfile自定义镜像2.1 dockerfile的命令格式镜像的操作命令add和copy的区别 容器启动的命令 2.2 run命令2.3 其它端口映射 三. 练习 一. docker的数据卷 容器于宿主机之间,或者容器和容…

【大数据】机器学习 -----关于data.csv数据集分析案例

打开表 import pandas as pd df2 pd.read_csv("data.csv",encoding"gbk") df2.head()查看数据属性(列标题,表形状,类型,行标题,值) print("列标题:",df2.columns)Data…

开发规范

开发规范 企业项目开发有2种开发模式:前后台混合开发和前后台分离开发。 前后台混合开发 顾名思义就是前台后台代码混在一起开发,如下图所示: 这种开发模式有如下缺点: 沟通成本高:后台人员发现前端有问题&#xf…

【Mysql进阶知识】从.SQL文件中执行SQL语句

目录 方法一:使用source命令导入 方法二:使用mysql客户端导入 方法一:使用source命令导入 有时候我们需要从 SQL 文件执行一些 SQL 语句,比如要把一个数据库从一台服务器 A 复制到另一台服务器 B 上,那么可以先从服务…

springMVC---resultful风格

目录 一、创建项目 pom.xml 二、配置文件 1.web.xml 2.spring-mvc.xml 三、图解 四、controller 一、创建项目 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi…

RustDesk ID更新脚本

RustDesk ID更新脚本 此PowerShell脚本自动更新RustDesk ID和密码&#xff0c;并将信息安全地存储在Bitwarden中。 特点 使用以下选项更新RustDesk ID&#xff1a; 使用系统主机名生成一个随机的9位数输入自定义值 为RustDesk生成新的随机密码将RustDesk ID和密码安全地存储…

告别 Excel,拥抱 R 语言:开启数据分析新时代

在这个数据驱动的时代&#xff0c;数据分析已然成为每个行业的核心竞争力。从市场营销到金融领域&#xff0c;从医疗健康到教育行业&#xff0c;数据无处不在&#xff0c;深刻影响着每一个决策。然而&#xff0c;面对日益复杂的数据集&#xff0c;单纯依靠 Excel 进行分析&…

LabVIEW驱动电机实现样品自动搜索

利用LabVIEW控制电机驱动相机在XY平面上进行扫描&#xff0c;以检测样品位置。样品最初可能位于相机视野范围之外&#xff0c;需要实现自动搜索样品位置并完成精确定位扫描的功能。该系统需具有以下特点&#xff1a; 高效搜索&#xff1a;能够快速确定样品位置&#xff0c;缩短…

【C语言】_字符串拷贝函数strcpy

目录 1. 函数声明及功能 2. 使用示例 3. 注意事项 4. 模拟实现 4.1 第一版&#xff1a;基本功能判空const修饰 4.2 第二版&#xff1a;优化对于\0的单独拷贝 4.3 第三版&#xff1a;仿strcpy的char*返回值 1. 函数声明及功能 char * strcpy ( char * destination, cons…

大模型WebUI:Gradio全解11——Chatbots:融合大模型的多模态聊天机器人(3)

大模型WebUI&#xff1a;Gradio全解11——Chatbot&#xff1a;融合大模型的多模态聊天机器人&#xff08;3&#xff09; 前言本篇摘要11. Chatbot&#xff1a;融合大模型的多模态聊天机器人11.3 组件Chatbot及ChatMessage11.3.1 Chatbot&#xff1a;聊天机器人组件1. API参数2.…

细说STM32F407单片机窗口看门狗WWDG的原理及使用方法

目录 一、窗口看门狗的工作原理 1、递减计数器 2、窗口值和比较器 3、看门狗的启动 4、提前唤醒中断 二、窗口看门狗的HAL驱动程序 1、窗口看门狗初始化 2.窗口看门狗刷新 3.EWI中断及其处理 三、不开启EWI的WWDG示例 1、示例功能 2、项目设置 &#xff08;1&…

Docker部署Spring Boot + Vue项目

目录 前提条件 概述 下载代码 打开代码 Docker创建网络 MySQL容器准备 MySQL数据库配置 启动MySQL容器 测试连接MySQL 初始化MySQL数据 Redis容器准备 修改Redis配置 启动redis容器 部署后端 后端代码打包 上传jar包到Linux 创建Dockerfile 构建镜像 运行后…

基于Oracle与PyQt6的电子病历多模态大模型图形化查询系统编程构建

一、引言 1.1 研究背景阐述 在当今数字化时代,医疗行业正经历着深刻的变革,数字化转型的需求日益迫切。电子病历(EMR)作为医疗信息化的核心,其管理的高效性和数据利用的深度对于提升医疗服务质量、优化临床决策以及推动医学研究具有至关重要的意义。传统的电子病历管理系…

万字长文介绍ARINC 653,以及在综合模块化航空电子设备(IMA)中的作用

文章目录 一、引言二、ARINC 653背景三、整体系统架构四、应用/执行&#xff08;APEX&#xff09;接口五、ARINC 653 RTOS内部机制六、健康监测功能七、软件应用八、ARINC 653现状九、总结 一、引言 在现代航空领域&#xff0c;综合模块化航空电子设备&#xff08;IMA&#xf…