机器学习-Regression

news2024/11/14 13:51:13

机器学习(Regression:Case Study)

前言:
学习资料

videopptblog

Example Application

宝可梦CP值估计

建立一个model,将宝可梦的一些数据作为输入,然后输出宝可梦进化以后的战斗力CP值,这个model的建立尤为重要,但是这个模型的建立也是需要一步一步慢慢进行,下面,我们先从最简单的一个参数开始,然后到后面的多参数。


Step 1:Model

建立模型,我们建立一个Linear model(线性模型):
y = b + w * x
w and b are parameters(can be any value)
A set of function(一系列的函数)
f1: y = 10.0 + 9.0 ∙ xcp
f2: y = 9.8 + 9.2 ∙ xcp
f3: y = - 0.8 - 1.2 ∙ xcp
多元线性模型


Step 2:Goodness of Function

我们有一系列的函数,但是这些函数哪一个是最好的,也就是说哪一个参数是最适合作为我们当前的预测模型,所以此时我们引入了损失函数(Loss Function)L
Loss Function:
函数的函数,用来评价模型函数的好坏,在这模型里面,我们可以通过转化,将该损失函数幻化为关于w和b的函数,我们此处用的是均方误差(MSE),定义不完全一样,但是基本的原理是一样的,取平方主要是为了防止正负误差相抵消,造成错误的拟合
各种误差可以了解这篇文章

Loss Function

Loss Function L函数的函数
inputa function
outputhow bad it is

通过将预测数据的函数带入L,我们可以得到一个关于w和b的函数
可以看作这是一个三维函数,输入数据有两种,颜色的深浅表示第三个维度
函数转化


Step 3:Best Function

前面我们说明了损失函数的作用,接下来我们就应该学习如何找到最优的模型函数,即最优的w和b
损失函数的值肯定是越小越好,但是如何找到最小的值
下面是使用线性代数的知识进行解决,但是我看不懂(因为线性代数是一年前学的😢)

Best Function

下面我们来讲解一种新的思路:梯度下降法,很容易理解

只考虑一个参数

单变量:(这里靠的是w,所以可以把b看作一个定值)
我们应该调整w找到最低点,高中的时候学过导数,导数为正,表示增加,w应该减少,导数为负,表示减少,w应该增加,导数的绝对值大小表示了此处的陡峭程度。
所以L关于w求导,然后随机选取一点w开始,接着对其进行变化更新,但是变化多少得由我们自己设定,导数也决定了增加还是减少
**Learn Rate:(学习率)**通过学习率的设定,我们可以很好的控制w的变化速度,设定过大,导致跳过最优解,过小,导致收敛过慢。
迭代更新,找到最优的函数对应的w

单参数
多参数

计算偏导,选取初始的w和b,然后使用上面的方法同时对他们进行更新

偏导

循环迭代,找到最优解

多参数
梯度

有兴趣的可以去了解一下这个概念,不是很好理解,但是很重要
等高线的法线方向

梯度

  • Each time we update the parameters, we obtain f that makes 𝐿 f smaller.

How’s the results?

我们找到了当前函数集合里面的最优函数,但是这个函数具体的好坏我们很难评价,通过图像可以看出很多点无法进行拟合
Average Error:体现我们对未来预测数据的准确程度,是很重要的一个指标

Average Error

优化方法,通过观察发现,将各个点连接起来以后更像一个曲线,那么我们可以试一下二次方差,或者高次方程

效果如下:
高次拟合

此时你会发现,并不是越高次的拟合效果越好,所以就引出了Overfitting
training data的Average Error越来越小,但是Test data的表现却不尽如人意,甚至在五次方程时,大大超出了我们的预估,那么这种现象就叫做overfitting。因为我们前说过要让test data的Average Error越小越好

Overfitting

这种情况我们又该如何解决呢?


Redesign the Model

Back To Step 1
What are the hidden factors?

Hidden Factors

不同的宝可梦,可以用同一个公式进行估计吗?
答案肯定是不行,但是我们最后是用一个函数进行预测,所以我们需要进行统一
下面的图片展示的不是很清晰,实际上就是把多个函数进行柔和,但是每个函数需要乘以一个式子,那便是对输入数据的不同而进行设置,如果输入的是皮卡丘,我们就吧皮卡丘函数的式子设置为1,其他为0,那么就可以实现一个函数进行所有的预测。

优化

Are there any otherhidden factors?

Hidden Factors


Regularization

Back To Step 2
这里我们分析两句话

  • We believe smoother function is more likely to be correct?
    在使用损失函数的时候,我们用的是train_data进行训练,调整参数,但是我们更关注的是test_data的预测情况,那么我们希望我们训练出来的函数是平滑的,那样在输入变化的时候,输出不会有很大的变化,从而减小我们预测的误差,所以这就要求我们在计算损失函数时关注w,防止正负影响,加上平方,但是w在里面的占比,我们可以手动调控,这样才能让损失函数最小的时候,我们对于test_data的预测情况更加准确,而我们进行调控的因子就是λ
  • Do you have to apply regularization on bias?
    b只会是我们的函数上下平移,对于函数的平滑程度没有任何影响,所以不需要考虑在内

Regularization
Regularization

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

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

相关文章

目标检测中 anchor base和anchor free

目标检测中两种不同anchor的生成 趋势:anchor free越来越受到实时性检测的青睐,,,

redis 高级篇 redis 源码的读取分析

一 redis源码分析 1.1 源码分析 1每一个kv键值对应有一个dictEntry。 2.底层数据结构

《QDebug 2023年7月》

一、Qt Widgets 问题交流 1.QPainter旋转角度绘制线条的一点问题 QPainter 旋转角度,等距绘制若干线条,会出现绘制不均匀的情况: 但是在测试 QML Canvas 绘制时,发现效果是正常的,原来是因为 Canvas 默认的 capStyle…

正则表达式的应用及示例解析

正则表达式(Regular Expression,简称Regex)是由特殊字符组成的模式字符串,用于匹配和搜索文本中的特定模式。它在数据处理、文本搜索和替换等方面广泛应用。本文将介绍正则表达式的基本语法,并提供常见的正则表达式示例…

Linux系统增加新用户

使用adduser命令,不使用useradd命令。 登录root用户,或者有sudo权限的用户创建。 sudo adduser test修改文件目录的权限 sudo chmod -R 777 /opt/登录新创建的用户创建文件 mkdir test删除用户 userdel -r test增加网络映射,安装samba sudo…

RBAC三级树状菜单实现(从前端到后端)未完待续

1、表格设计 RBAC 2、前端路由 根据不同的用户id显示不同的菜单。 根据路由 3、多级菜单 展示所有权限,并且根据当前用户id展示它所属的角色的所有菜单。 前端树状展示 思路: 后端:传给前端map,map里1个是所有菜单&am…

汽车过户时,怎么选到理想的好车牌?

在汽车过户的过程中,选到一副理想的好车牌就像买彩票中大奖一样令人兴奋。但是,怎样找到这样一块车牌呢?这就是本文要探讨的问题。 首先,我们来聊聊选车牌的技巧。很多人喜欢选择有特别数字的车牌,如“8888”、“6666”…

太狠了,Spring 全家桶笔记, 一站式通关全攻略, 已入职某厂涨薪 18K

Spring 早已成为 Java 后端开发事实上的行业标准,无数的公司选择 Spring 作为基础的开发框架,大部分 Java 后端程序员在日常工作中也会接触到 Spring ,因此,如何用好 Spring ,也就成为 Java 程序员的必修课之一。 为了…

解决方案之执行gradle报错--org.codehaus.groovy.runtime.InvokerHelper

这里写自定义目录标题 报错解决方案 报错 在执行./gradlew clean时报错如下: FAILURE: Build failed with an exception.* What went wrong: Could not initialize class org.codehaus.groovy.runtime.InvokerHelper > Exception java.lang.NoClassDefFoundErr…

自动callback

using UnityEngine;public class AsyncCallbackScript : MonoBehaviour {public delegate void fun(string msg);void Start(){fun test AAA;//test.BeginInvoke("天王盖地虎", asyncCallback > BBB(), null);test.BeginInvoke("天王盖地虎 宝塔镇河妖"…

Java实现简单小画板

Java制作简单画板,包括两个类,一个主要画板类Drawpad,一个画板监听器DrawListener类。 1、Drawpad类,包括画板,画板功能设计,保存图片等 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2…

Boost开发指南-3.6weak_ptr

weak_ptr weak_ptr是为配合shared_ptr而引入的一种智能指针,它更像是shared_ptr的一个助手而不是智能指针,因为它不具有普通指针的行为,没有重载 operator*和->。它的最大作用在于协助shared_ptr工作,像旁观者那样观测资源的使…

伴伴加速“搭子社交”:确认过眼神,是一起玩游戏的人

最近在年轻人中风靡起了一种新型的社交方式——“搭子”社交。例如饭搭子、学习搭子、游戏搭子、减肥搭子......在搭子社交流行的当下,伴伴抓住了这一点,为年轻人提供了一个线上社交平台,让他们能够找到与自己兴趣相投的搭子。 什么是搭子社…

回归预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现SO-CNN-LS…

接口自动化测试-Jmeter+ant+jenkins实战持续集成(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、下载安装配置J…

vue sku商品规格多选

vue sku商品规格多选 1.创建一个数据对象,用于存储SKU的选中状态。例如,可以使用一个数组来表示选中的SKU,每个元素代表一个SKU选项的id。 data() {return {selectedOptions: []} }2.在SKU选项列表中,使用v-bind:class绑定一个计…

医疗陪诊小程序开发:为您打造贴心、专业的陪护服务

近年来,随着人们对健康关注度的提高和医疗服务需求的增加,陪诊小程序逐渐崭露头角。陪诊小程序是一种基于互联网技术的应用程序,旨在提供便捷、高效的陪诊服务。下面将介绍陪诊小程序开发的优势。   便捷性:陪诊小程序可以通过手…

类和对象——初始化列表

目录 初始化列表 注意 单/多参数传入 explicit关键字 匿名函数 先前,我们知道有构造函数——用于给各成员变量一个初始值。 但是仍然不能称为是初始化,因为初始化只能初始化一次,但是构造函数里可以多次赋值 初始化列表 以日期类Date…

【Golang】解决Go test执行单个测试文件提示未定义问题

目录 背景 根本原因 解决方法 解决 多级引用或多个引用包的情况 总结 资料获取方法 背景 很多人记录过怎么执行Go test单个文件或者单个函数,但是要么对执行单文件用例存在函数或变量引用的场景避而不谈,要么提示调用了其它文件中的模块会报错。其…

Coremail中睿天下|2023年第二季度企业邮箱安全态势观察

7月24日,Coremail邮件安全联合中睿天下发布《2023第二季度企业邮箱安全性研究报告》,对2023第二季度和2023上半年的企业邮箱的安全风险进行了分析。 一、垃圾邮件同比下降16.38% 根据Coremail邮件安全人工智能实验室(以下简称AI实验室&#…