当前位置: 首页 > news >正文

有监督学习基础

基本概念

给定输入有为(x,y),其中x表示学习特征,y表示输出,m表示输入总数,有监督学习旨在根据输入建立能够预测可能输出的模型,大致可以分为回归和分类两种,代表可能输出是无限的或是有限可能。

模型

线性回归模型
通过数据集建立回归模型,表现形式为根据数据点建立曲线,如y~=wx+b,用于预测无限可能的数字。
分类模型
少量可能输出的预测,比如图片内容识别,音频字符识别等情况。

基本训练过程为
训练集—学习算法—预测方法

成本函数J

用于衡量建立曲线与数据点的差异大小,即曲线的拟合程度,通过平均误差成本函数实现—
m是为了避免误差随着数据集增大而增大,而除2是为了后续化简,使程序整洁。

构建模型的目的是使成本函数J尽可能小,为了简化,暂时不考虑b。

梯度下降

wb使成本函数最小的方法,也是逐步确定拟合曲线的方法,将参数初始化为0,每次尝试使J减小的方向,可视化如下:
成本函数梯度下降
本质是通过切线找到三维图像的最低点,从任意点开始找wb使成本函数最小的方法如式:


上述两个迭代公式需同步计算,上述步骤不断重复直到收敛,可以实现成本函数不断向局部最小值更新,其中a又称学习率,用于控制上下坡的步幅。

线性回归

用向量分别表示输入x和参数wf(x)=w·x+b,特征多数据大时,传统计算方法耗时很长,故考虑采取其他技术解决。

矢量化

w=np.array([])x=np.array([])生成向量,但计算时不使用循环乘法,二十直接调用f=np.dot(w,x)+b实现点积运算,该方法快于for循环,使用并行硬件,执行快。

梯度下降

w由原有计算式带入可得新w的计算公式
相应的,b的新计算式为
新b的计算公式
这里求导平方的2就和成本函数J分母加的2抵消,使式子简洁。
另外还有法方程法可用,但该方法并不通用,只在这种场景下可以无需迭代求解wb,但梯度下降是通用的方法。

特征缩放

单个特征对J的影响很大时,会导致曲线变化太大,梯度下降来回跳动,无法找到极值点,如下图
单个值太大
此时我们可以选择缩放特性,使整体的特征值大致在同一范围内,使用除法或平均归一化方法。

判断收敛

通过学习曲线检查梯度下降是否收敛,如下图
学习曲线
可以看出随着迭代次数的上升成本函数不断下降并趋于一个固定值,此时可以声明其收敛,但该方法的难度在于确定一个阈值。

选择学习率

太小则计算步骤增多,太大则可能跨过极值点,导致计算永远达不到最小值,需要尝试绘图找到合适的值,在接近最小值后由于偏导变化,步子会自动变小,同样需要尝试根据学习曲线图像选择。
学习曲线2
如果学习曲线上下摆动,则可能是学习率的选择过于大了。

选择特征

可以根据需要创建新特性,如果曲线不能线性拟合,也可以使用特征多项式提高特征次数,获得拟合曲线,在该部分特征缩放显得尤其重要。

logistic回归

用于分类,拟合一条横S曲线,用于二进制的分类,具体公式如下,其中z=w·x+b0<g(z)<1
逻辑回归曲线
图像大致如下:
逻辑回归曲线
该模型输出一个范围0-1的数字,代表分类为1的概率,多用于广告推荐算法,输出概率需设置阈值判定,常见的为0.5,该阈值称为决策边界,也就是z为0时的取值。

损失函数

单个点的损失L表示为:

L(z,y)= -log(z) 	y=1-log(1-z)	y=0

具体含义为,当y=1,预测为真则无损,预测为0则损失极大,y=0相同,预测为1损失极大,预测为0无损,区间的损失用对数函数覆盖。
上述损失可以简化为:
简化损失函数
y=1y=0时带入都可化简为初始式子。

总的损失函数J是所有点损失集合的平均数,表示为:
分类损失函数

梯度下降

w梯度下降

b梯度下降

二者同样需要同时计算,与线性回归的区别只在f(x)上,一个是f=w·x+b,另一个是指数形式1/1+e^(w·x+b)

其他

矢量化,特征缩放,判断收敛等,都与线性回归相同。

正则化

拟合与数据不匹配,称为偏差,拟合符合数据,但变化太多不能适应新数据,称为方差,或过拟合,如下三图分别表示偏差,合格拟合和方差。
拟合示例
解决过拟合的方法有:
1,收集更多数据,更大的训练集可以限制函数,拟合出摆动没那么大的图像
2,减少特征,数据不足但特征过多,易过拟合
3,减少参数大小,惩罚所有特征,可以使函数更平滑,表示公式如图:
正则化成本函数

其中lambda>0,使用正则化成本函数的思想为使w尽可能小。

正则化线性回归梯度下降

原有成本函数梯度下降为:
线性回归w正则化梯度下降
线性回归b正则化梯度下降

正则化logistic回归梯度下降

逻辑回归w正则化梯度下降
逻辑回归b正则化梯度下降

总结

本章学习了监督学习的两种算法,回归和分类,分别用于处理预测无限可能的数字,和有限输出的类型,本质都是通过对已有的数据建立拟合模型来实现,区别在于拟合曲线不同,拟合模型内部通过成本函数来衡量预测结果,每次模型调整又借助梯度下降实现,三者统一完成模型的建立与调整,最后,通过正则化来解决过拟合。

总结的总结,有监督学习的要点:标签、拟合曲线、成本函数、梯度下降、正则化,另外与无监督学习的区别就在于训练集有标签,在特定领域和指定情况效果佳。

另外,正则化之前的函数中分母m2m应该提到最前并改为1/m,修改工作量大偷个小懒。

相关文章:

有监督学习基础

基本概念 给定输入有为&#xff08;x,y&#xff09;&#xff0c;其中x表示学习特征&#xff0c;y表示输出&#xff0c;m表示输入总数&#xff0c;有监督学习旨在根据输入建立能够预测可能输出的模型&#xff0c;大致可以分为回归和分类两种&#xff0c;代表可能输出是无限的或…...

揭开 AI 绘画提示词的神秘密码!

前言 ** 揭秘AI 绘画 ** 提示词的神秘密码 亲爱的朋友们&#xff0c;今天我们要一起探索 AI 绘画世界中那神秘的“密码”——提示词。 在 AI 绘画的奇妙领域里&#xff0c;提示词就像是一把神奇的钥匙&#xff0c;能够开启无尽的创意之门。它是我们与 AI 进行心灵对话的桥…...

macOS 10.15中屏蔽Microsoft Edge浏览器的更新提示

文章目录 1.效果对比2.安装描述文件3.停用描述文件4.高级操作&#xff08;可选&#xff09;参考文献 最近在macOS10.15系统&#xff0c;打开Microsoft Edge浏览器&#xff0c;每次打开都有个烦人的提示“ 要获取将来的 microsoft edge 更新&#xff0c;需要 macos 10.15 或更高…...

Qt 实战(3)数据类型 | 3.2、QVariant

文章目录 一、QVariant1、存储数据1.1、存储Qt内置数据1.2、存储自定义数据 2、获取数据3、判断数据类型4、清空数据5、总结 前言&#xff1a; QVariant是Qt框架中一个非常强大且灵活的类&#xff0c;它提供了一种通用的方式来存储和转换几乎任何类型的数据。无论是基本数据类型…...

Docker中安装的postgresql14在启用vector扩展的时候,找不到该扩展的控制文件。

ERROR: could not open extension control file “/usr/share/postgresql/14/extension/vector.control”: No such file or directory 进入容器 docker exec -it CONTAINER ID /bin/bash 1.更新 apt-get apt-get update 2.安装插件 #不同版本对应修改数字即可 apt-get i…...

JS防抖和节流

一、防抖和节流的适用场景 防抖&#xff08;Debounce&#xff09;&#xff1a; 适合在输入框输入时的实时搜索、窗口大小调整时的resize事件等。节流&#xff08;Throttle&#xff09;&#xff1a; 适合如页面滚动时的scroll事件、按钮点击时的请求发送等需要控制频率的场景。 …...

OpenWrt 为软件包和docker空间扩容

参考资料 【openwrt折腾日记】解决openwrt固件刷入后磁盘空间默认小的问题&#xff0c;关联openwrt磁盘扩容空间扩容【openwrt分区扩容】轻松解决空间可用不足的尴尬丨老李一瓶奶油的YouTube 划分空间 参考一瓶奶油的YouTube 系统 -> 磁盘管理 -> 磁盘 -> 修改 格…...

重要的工作任务,怎么在电脑桌面设置倒计时?

在日常工作中&#xff0c;我们总是面临着众多工作任务&#xff0c;如何高效地管理和完成这些任务成为了每个职场人的必备技能。为任务设置倒计时&#xff0c;不仅能让我们清晰地看到任务的先后顺序&#xff0c;还能帮助我们更好地把握时间&#xff0c;提高工作效率。想象一下&a…...

Failed to build get_cli:get:的解决方案

项目场景&#xff1a; 今天安装Getx命令行的时候&#xff0c;输入这面文档报了一个错&#xff1a; dart pub global activate get_cli 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 例如&#xff1a;数据传输过程中数据不时出现丢失的情况&#xff0c;偶尔…...

短视频矩阵源码技术分享

在当今数字媒体时代&#xff0c;短视频已成为吸引观众和传递信息的重要手段。对于开发者而言&#xff0c;掌握短视频矩阵源码技术不仅是提升自身技能的需要&#xff0c;更是把握行业发展趋势的必然选择。本文将深入探讨短视频矩阵源码的关键技术要点及其实现方法&#xff0c;帮…...

轮播图自定义内容

官网&#xff1a;Swiper演示 - Swiper中文网 下载&#xff1a; npm i swiper Vue3示例代码&#xff1a; <template><div class"swiper mySwiper"><div class"swiper-wrapper"><div class"swiper-slide"><div>…...

大数据-44 Redis 慢查询日志 监视器 慢查询测试学习

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…...

Istio_01_Istio初识

文章目录 IstioService Mesh Istio Istio: 以服务网格形态用于服务治理的开放平台和基础设施 本质: 以非侵入式治理服务之间的访问和调用服务治理: 流量管理、可观测性、安全性可同时管理多类基础设施(多种网络方案) 如: Istio和Kubernetes架构的结合 Istio通过Kubernetes的域…...

leetcode日记(47)螺旋矩阵Ⅱ

这题思路不难&#xff0c;就是找规律太难了。 我首先的思路是一行一行来&#xff0c;根据规律填入下一行的数组&#xff0c;第i行是由前i个数字&#xff08;n-2*i&#xff09;个增序数列后i个数字组成&#xff0c;后来觉得太难找规律了就换了一种思路。 思路大致是先计算出需…...

centos系统mysql主从复制(一主一从)

文章目录 mysql80主从复制&#xff08;一主一从&#xff09;一、环境二、服务器master1操作1.开启二进制日志2. 创建复制用户3. 服务器 slave1操作4. 在主数据库中添加数据 mysql80主从复制&#xff08;一主一从&#xff09; 一、环境 准备两台服务器&#xff0c;都进行以下操…...

IEDA怎么把springboot项目 启动多个

利用Idea提供的Edit Configurations配置应用参数。 点击Modify Options进行添加应用参数&#xff1a; 确保这里勾选...

Vue 3项目安装Element-Plus

Element Plus 是一个基于 Vue 3 的现代前端UI框架&#xff0c;它旨在提升开发体验&#xff0c;并为开发者提供高效、优雅的组件。如果你正在使用 Vue 3 进行项目开发&#xff0c;那么安装和集成 Element Plus 是一个不错的选择。在本文中&#xff0c;博主将详细介绍如何在 Vue …...

Git下载安装

一、介绍 Git是一个分布式版本控制系统&#xff0c;最初由Linus Torvalds创建&#xff0c;用于管理和跟踪代码的变化。它可以轻松地处理个人项目和大型团队项目的版本控制需求。 Git的主要特点包括&#xff1a; 分布式&#xff1a;每个开发者都可以拥有自己的本地仓库&#x…...

linux中的目录操作函数

参考 【Linux系统编程】Linux 文件系统探究&#xff1a;深入理解 struct dirent、DIR 和 struct stat结构 stat函数 C标准库提供了访问linux的目录的函数接口现对目录的操作。 一、libc接口 libc访问目录的流程为&#xff1a;打开目录&#xff0c;访问目录&#xff0c;关闭目…...

JSON 文件第一段飘红

问题 原因 这个问题通常发生在尝试用 ESLint 去解析 JSON 文件时。ESLint 主要设计用于检查 JavaScript 代码的语法和风格&#xff0c;而JSON是一种数据交换格式&#xff0c;不包含 JavaScript 的逻辑结构&#xff0c;如函数、变量声明等。 解释报错原因 当ESLint遇到它不能识…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...