如何写一个app/洛阳网站建设优化
🚀个人主页:为梦而生~ 关注我一起学习吧!
💡专栏:机器学习 欢迎订阅!后面的内容会越来越有意思~
💡往期推荐:
【机器学习基础】机器学习入门(1)
【机器学习基础】机器学习入门(2)
【机器学习基础】机器学习的基本术语
【机器学习基础】机器学习的模型评估(评估方法及性能度量原理及主要公式)
💡本期内容:本篇文章开始机器学习的模型,我们从最简单的开始,所以从线性的开始,而线性模型中一元的最简单,最基础,所以先讲解一下一元线性回归~超级基础的文章,赶紧收藏学习吧!!!
文章目录
- 1 线性模型
- 2 一元线性回归
- 2.1 引例及模型表示
- 2.2 代价函数(Cost function)
- 3 一元梯度下降求参数
- 3.1 代价函数的简化
- 3.2 二元的代价函数
- 3.3 梯度下降
- 3.3.1 理解梯度下降
- 3.3.2 利用梯度下降求解线性回归
1 线性模型
给定由d个属性描述的示例x,其中xi是x在第i个属性上的取值,线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即
一般用向量形式写成
w和b学得之后,模型就得以确定
2 一元线性回归
一元线性回归是一种统计分析方法,用于建立一个自变量和一个因变量之间的线性关系模型。在一元线性回归中,只有一个自变量(即解释变量)与一个因变量(即被解释变量)相关。
该模型的目标是找到一个最佳拟合直线,使得该直线能够最好地拟合已知的数据点并预测未知的数据点。最常用的评估拟合程度的指标是最小二乘法,它通过最小化观测值与拟合直线的差距的平方和来确定最佳拟合直线。
一元线性回归的模型可以表示为:Y = β₀ + β₁X + ε 其中,Y 是因变量,X 是自变量,β₀ 和 β₁ 是模型的系数,ε
是随机误差项。通过一元线性回归,我们可以估计自变量和因变量之间的关系,并进行预测和推断。
以上是官方解释,看不懂没事,我们来举一个经典的例子:
2.1 引例及模型表示
这个例子是关于预测房屋价格的,我们已知这样一个数据集:
横坐标表示房屋的面积,纵坐标表示房屋的价格。我们的目标是预测在给定房屋面积的情况下,房屋的价格是多少。例如,如果你的朋友的房子是1250平方英尺大小,你可以使用上面的数据集来预测其可能售价。那么,我们应该如何进行预测呢?
你可以构建一个模型,比如拟合一条直线,如上图所示。从这个模型来看,也许你可以告诉你的朋友,他可以以大约220000(美元)左右的价格卖掉这个房子。这其实就是一个回归问题的例子!
Notation:
- 𝑚:训练集中实例的数量
- 𝑥 :特征/输入变量
- 𝑦 :目标变量/输出变量
- (𝑥, 𝑦) :训练集中的实例
- (x(i), y(i)):第𝑖 个观察实例
- ℎ :学习算法的解决方案或函数也称为假设(hypothesis)
ℎ是一个函数,也是模型,代表的是从输入到输出的一个映射。这里输入是房屋尺寸大小,输出是房屋的价格。
在一元线性回归模型中如何表示h呢?
这里表示的就是单变量(一元)线性回归,其图像描述如下图所示:
回到例子中,我们需要借助h来预测房价。实际上 ,我们是要将训练集(已知的部分数据)“喂”给我们的学习算法,进而学习得到一个函数ℎ,然后将我们要预测的房屋的尺寸作为输入变量输入给ℎ,预测出该房屋的交易价格作为输出变量输出为结果。这个过程类似于在中学学到的求解直线方程,只是需要多次迭代。
那这个迭代过程究竟跟我们中学阶段的求解有什么区别呢?这里就要引出下面这个概念:
2.2 代价函数(Cost function)
对于一元线性函数,每一对参数都可以得到一种曲线的画法
那么哪一种是最适合的呢?我们用假设函数来表示我们预测结果的模型。那么,这个模型好还是不好呢?我们需要有一个判别标准,这个标准就叫作代价函数。其表示形式如下:
对于代价函数的解释:
- 通过训练集我们可以得到假设函数h,即我们建立的模型,
- y是在这个点相应的ground truth。
- 通过输入测试集的自变量向函数h和y,得出预测出来的结果与实际的结果,让两者相减得到误差,通过误差可以看出我们预测的结果好还是不好。
- 求和再平方相当于求他们的方差,即预测值与真实值的差距的波动程度
- 们的最终目标就是最小化代价函数
那么我们现在的问题就转化为了如何利用训练集最小化代价函数
3 一元梯度下降求参数
如何求解代价函数呢?我们通常使用梯度下降的方法。
3.1 代价函数的简化
我们先理解含有一个参数的代价函数。
下面是当 𝜃1 = 1时的代价函数与假设函数
下面是 𝜃1 = 0.5时的曲线
下面做出 𝜃1 = 0 时的曲线并把代价函数所有的点连起来
由图像我们可以知道,当J( θ 1 \theta _{1} θ1)取最小值时的参数所对应的假设函数是拟合数据最好的直线。
3.2 二元的代价函数
上面是之含有一个参数的代价函数,这里我们把另一个参数加上去,看看怎么求解:
再利用上面的方法,尝试每一个特殊的点,得到代价函数在坐标系中的位置后将他们连起来,我们就得到了一个二元代价函数,它是一个三维图形
同样利用上面的方法,遍历每一个参数 θ 0 \theta _{0} θ0, θ 1 \theta _{1} θ1,找到使得代价函数最小的参数。
多了一个参数相当于多了一个维度,图像也由一开始的二维拓展到了三维。求代价函数的最小值仍然是我们的目标。
可是要遍历的点太多了,我们怎么知道哪里是最小的点呢?下面介绍求代价函数最小值的方法:梯度下降
3.3 梯度下降
梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降是最常采用的方法之一。
3.3.1 理解梯度下降
举个例子,梯度下降法就是从山顶找一条最短的路走到山谷最低的地方。在这个过程中,每次都会沿着当前点的梯度方向(即函数在该点的斜率)走一步,逐步向最低点靠近。在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。
那么具体到一元线性回归的代价函数,我们如何使用梯度下降呢?
3.3.2 利用梯度下降求解线性回归
接下来我们让梯度下降与线性回归相结合(关键在于对代价函数求偏导):
其主要思想如下:
其中𝑎是学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方向 向下迈出的步子有多大,在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数。
偏导 ( φ φ θ j J ( θ ) ) (\frac{\varphi }{\varphi \theta _{j}}J(\theta )) (φθjφJ(θ))的目的是为了确定下山的方向
当偏导大于0或小于0时代表了函数的不同增长趋势,与导数的意义相同
每走一步(每一次迭代)我们都需要确定新的参数,因为只有更新了参数才能确定下一步的方向。
每走一步都计算其梯度,经过不断的迭代,最终就可以找到最小值了。
公式的推导:
这样,我们就可以通过迭代,更快的找到最小值了
相关文章:

【机器学习基础】一元线性回归(适合初学者的保姆级文章)
🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:机器学习 欢迎订阅!后面的内容会越来越有意思~ 💡往期推荐: 【机器学习基础】机器学习入门(1) 【机器学习基…...

2024年软件测试岗位-面试
第一部分: 1、自我介绍:简历写到的快速描述,学校、学历、工作经验等(注意:不要过度优化简历,你不写别人可能会问,但你写了别人一定会问!) 第二部分: 1、功能测…...

【坑】Spring Boot整合MyBatis,一级缓存失效
一、Spring Boot整合MyBatis,一级缓存失效 1.1、概述 MyBatis一级缓存的作用域是同一个SqlSession,在同一个SqlSession中执行两次相同的查询,第一次执行完毕后,Mybatis会将查询到的数据缓存起来(缓存到内存中…...

J7 - 对于ResNeXt-50算法的思考
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 J6周有一段代码如下 思考过程 首先看到这个问题的描述,想到的是可能使用了向量操作的广播机制然后就想想办法验证一下&…...

R3F(React Three Fiber)基础篇
之前一直在做ThreeJS方向,整理了两篇R3F(React Three Fiber)的文档,这是基础篇,如果您的业务场景需要使用R3F,您又对R3F不太了解,或者不想使用R3F全英文文档,您可以参考一下这篇&…...

torch\tensorflow在大语言模型LLM中的作用
文章目录 torch\tensorflow在大语言模型LLM中的作用 torch\tensorflow在大语言模型LLM中的作用 在大型语言模型(LLM)中,PyTorch和TensorFlow这两个深度学习框架起着至关重要的作用。它们为构建、训练和部署LLM提供了必要的工具和基础设施。 …...

设计模式-创建型模式-单例模式
0 引言 创建型模式(Creational Pattern)关注对象的创建过程,是一类最常用的设计模式,每个创建型模式都通过采用不同的解决方案来回答3个问题:创建什么(What),由谁创建(W…...

备战蓝桥杯—— 双指针技巧巧答链表1
对于单链表相关的问题,双指针技巧是一种非常广泛且有效的解决方法。以下是一些常见问题以及使用双指针技巧解决: 合并两个有序链表: 使用两个指针分别指向两个链表的头部,逐一比较节点的值,将较小的节点链接到结果链表…...

微信小程序返回上一级页面并自动刷新数据
文章目录 前言一、获取小程序栈二、生命周期触发总结 前言 界面由A到B,在由B返回A,触发刷新动作 一、获取小程序栈 界面A代码 shuaxin(){//此处可进行接口请求从而实现更新数据的效果console.log("刷新本页面数据啦")},界面B代码 // 返回触…...

Spring⼯⼚创建复杂对象
文章目录 5. Spring⼯⼚创建复杂对象5.1 什么是复杂对象5.2 Spring⼯⼚创建复杂对象的3种⽅式5.2.1 FactoryBean 接口5.2.2 实例⼯⼚5.2.3 静态工厂 5.3 Spring 工厂的总结 6. 控制Spring⼯⼚创建对象的次数6.1 如何控制简单对象的创建次数6.2 如何控制复杂对象的创建次数6.3 为…...

Top-N 泛型工具类
一、代码实现 通过封装 PriorityQueue 实现,PriorityQueue 本质上是完全二叉树实现的小根堆(相对来说,如果比较器反向比较则是大根堆)。 public class TopNUtil<E extends Comparable<E>> {private final PriorityQ…...

Java 后端面试指南
面试指南 TMD,一个后端为什么要了解那么多的知识,真是服了。啥啥都得了解 MySQL MySQL索引可能在以下几种情况下失效: 不遵循最左匹配原则:在联合索引中,如果没有使用索引的最左前缀,即查询条件中没有包含…...

142.环形链表 ||
给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整…...

Nacos、Eureka、Zookeeper注册中心的区别
Nacos、Eureka和Zookeeper都是常用的注册中心,它们在功能和实现方式上存在一些不同。 Nacos除了作为注册中心外,还提供了配置管理、服务发现和事件通知等功能。Nacos默认情况下采用AP架构保证服务可用性,CP架构底层采用Raft协议保证数据的一…...

CSS重点知识整理1
目录 1 平面位移 1.1 基本使用 1.2 单独方向的位移 1.3 使用平面位移实现绝对位置居中 2 平面旋转 2.1 基本使用 2.2 圆点转换 2.3 多重转换 3 平面缩放 3.1 基本使用 3.2 渐变的使用 4 空间转换 4.1 空间位移 4.1.1 基本使用 4.1.2 透视 4.2 空间旋转 4.3 立…...

【Langchain多Agent实践】一个有推销功能的旅游聊天机器人
【LangchainStreamlit】旅游聊天机器人_langchain streamlit-CSDN博客 视频讲解地址:【Langchain Agent】带推销功能的旅游聊天机器人_哔哩哔哩_bilibili 体验地址: http://101.33.225.241:8503/ github地址:GitHub - jerry1900/langcha…...

算法学习(十二)并查集
并查集 1. 概念 并查集主要用于解决一些 元素分组 问题,通过以下操作管理一系列不相交的集合: 合并(Union):把两个不相交的集合合并成一个集合 查询(Find):查询两个元素是否在同一…...

TensorRT及CUDA自学笔记003 NVCC及其命令行参数
TensorRT及CUDA自学笔记003 NVCC及其命令行参数 各位大佬,这是我的自学笔记,如有错误请指正,也欢迎在评论区学习交流,谢谢! NVCC是一种编译器,基于一些命令行参数可以将使用PTX或C语言编写的代码编译成可…...

数据库管理-第154期 Oracle Vector DB AI-06(20240223)
数据库管理154期 2024-02-23 数据库管理-第154期 Oracle Vector DB & AI-06(20240223)1 环境准备创建表空间及用户TNSNAME配置 2 Oracle Vector的DML操作创建示例表插入基础数据DML操作UPDATE操作DELETE操作 3 多Vector列表4 固定维度的向量操作5 不…...

解决uni-app vue3 nvue中使用pinia页面空白问题
main.js中,最关键的就是Pinia要return出去的问题,至于原因嘛! 很忙啊,先用着吧 import App from ./App import * as Pinia from pinia import { createSSRApp } from vue export function createApp() {const app createSSRApp(App);app.us…...

不用加减乘除做加法
1.题目: 写一个函数,求两个整数之和,要求在函数体内不得使用、-、*、/四则运算符号。 数据范围:两个数都满足 −10≤�≤1000−10≤n≤1000 进阶:空间复杂度 �(1)O(1),时间复杂度 &am…...

旅游组团自驾游拼团系统 微信小程序python+java+node.js+php
随着社会的发展,旅游业已成为全球经济中发展势头最强劲和规模最大的产业之一。为方便驴友出行,寻找旅游伙伴,更好的规划旅游计划,开发一款自驾游拼团小程序,通过微信小程序发起自驾游拼团,吸收有车或无车驴…...

LeetCode 第41天 | 背包问题 二维数组 一维数组 416.分割等和子集 动态规划
46. 携带研究材料(第六期模拟笔试) 题目描述 小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实…...

Ubuntu20.04和Windows11下配置StarCraft II环境
1.Ubuntu20.04 根据下面这篇博客就可以顺利安装: 强化学习实战(九) Linux下配置星际争霸Ⅱ环境https://blog.csdn.net/weixin_39059031/article/details/117247635?spm1001.2014.3001.5506 Ubuntu下显示游戏界面目前还没有解决掉。 大家可以根据以下链接看看能…...

【NCom】:通过高温气相合成调节Pt-CeO2相互作用以提高晶格氧的还原性
摘要:在这项工作中,我们比较了通过两种方法制备的 Pt 单原子催化剂(SAC)的 CO 氧化性能:(1)传统的湿化学合成(强静电吸附strong electrostatic adsorption–SEA)…...

git 将一个分支的提交移动到另一个分支
假设想把分支A上的最后一部分commit移动到分支B之上: 首先切到分支B git checkout B然后执行如下指令,commit id 为A分支上,需要移动的那些提交 git cherry-pick <commit id> ( <commit id> 可多个)中途可能遇到一些…...

vue3 实现 el-pagination页面分页组件的封装以及调用
示例图 一、组件代码 <template><el-config-provider :locale"zhCn"><el-pagination background class"lj-paging" layout"prev, pager, next, jumper" :pager-count"5" :total"total":current-page"p…...

#FPGA(IRDA)
1.IDE:Quartus II 2.设备:Cyclone II EP2C8Q208C8N 3.实验:IRDA(仿真接收一个来自0x57地址的数据0x22 (十进制34)) 4.时序图: 5.步骤 6.代码: irda_receive.v module irda_receive ( input wire…...

Sora—openai最新大模型文字生成视频
这里没办法发视频,发几个图片感受感受吧 OpenAI发布了Sora,一种文字生成视频的技术,从演示看,效果还是相当不错的。 Sora的强大之处在于其能够根据文本描述,生成长达 60秒的视频,其中包含精细复杂的场景…...

VoIP(Voice over Internet Protocol 基于IP的语音传输)介绍(网络电话、ip电话)
文章目录 VoIP(基于IP的语音传输)1. 引言2. VoIP基础2.1 VoIP工作原理2.2 VoIP协议 3. VoIP的优势和挑战3.1 优势3.2 挑战 4. VoIP的应用5. 总结 VoIP(基于IP的语音传输) 1. 引言 VoIP,全称Voice over Internet Prot…...