机器学习 - 代价函数

场景

上次简单学习了支持向量机的概念。概念如下:

支持向量机(SVM):SVM是一种监督学习算法,常用于分类问题。它的目标是找到一个超平面(在二维空间中是一条线,在更高维空间中是一个面),这个超平面能够最好地分隔不同类别的数据点。SVM的核心思想是最大化不同类别数据点之间的边距。

经常与其一起被提到的是 代价函数,其概念如下:
代价函数:在机器学习中,代价函数(或损失函数)是衡量模型预测值与实际值之间差异的一个函数。它是一个用来量化模型预测错误程度的指标。在训练过程中,机器学习算法通过最小化这个函数来调整模型参数,从而改善模型的预测性能。

初识代价函数

案例

我们要预测上海房价与房子面积的关系,我们可以使用线性回归模型。线性回归是一种用于预测连续数值输出的算法,特别适合于预测两个变量之间的线性关系。在这种情况下,我们将房子面积作为自变量(特征),房价作为因变量(目标)。
设: y = c1 + c2X

我们先生成一些基本数据图:

import numpy as np
import matplotlib.pyplot as plt# 设置随机种子
np.random.seed(42)# 定义系数 c1 和 c2
c1 = 100  # 基础房价
c2 = 0.8  # 每平方米增加的房价# 生成房子面积的数据(40到200平方米之间)
X = np.random.uniform(40, 200, 100)# 计算房价,加入随机噪声模拟实际情况
noise = np.random.randn(100) * 20  # 加入的噪声
y = c1 + c2 * X + noise# 绘制数据点
plt.scatter(X, y)
plt.title('Simulated Shanghai House Prices')
plt.xlabel('Area (sqm)')
plt.ylabel('Price (10K RMB)')
# plt.grid(True)
plt.show()

得图:
在这里插入图片描述
通过这个图片,我们看到有很多点,我们可以假设几个趋势来预测房价和面积的关系
在这里插入图片描述

我们画了三条线,第一个(绿色的线)是 y = 140 其中c1 是140 c2是0,是一个常量;第二个(红色的线)是y = x,其中c1是0 ,c2是1 ;第三个(蓝色的线)是y=0.5x ,其中c1是0,c2是0.5

我们要做的是选择一条最贴近于房价趋势的线,我们可以采用均方误差(Mean Squared Error, MSE)来衡量模型预测值与实际值之间的差异。

我们在这个图中假设取出三个点,如下:
,我们以这三个点为例
在这里插入图片描述
其中 a(100,100),b(200,190),c(300.300)

其中针对绿色得线,计算:
计算每个差异的平方:

(140 - 100)^2 = 40^2 = 1600
(190 - 140)^2 = 50^2 = 2500
(300 - 140)^2 = 160^2 = 25600
计算这些平方差的平均值:

MSE = (1600 + 2500 + 25600) / 6
MSE = 28800 / 6
MSE = 4950

同理:
红色得线是

(100- 100)^2 = 0^2 = 0
(190 - 200)^2 = 10^2 = 100
(300 - 300 )^2 = 0^2 = 0

100 / 6 = 16.6

蓝色得线是
(50- 100)^2 = 50^2 = 2500
(190 - 100)^2 = 90^2 = 8100
(300 - 150)^2 = 150^2 = 22500

33100 / 6 = 5516

通过这个标准均方误差(MSE)结果,我们可以知道,红色得线是最接近我们得预测得,绿色次之,蓝色再次之,误方差越大,预测越不准,反之同理。

代价模型

代价模型的详细概念

定义:代价函数是一个衡量模型预测值与真实值差距的函数。它是模型参数的函数,用于评估模型的表现。在监督学习中,代价函数计算了模型预测值与实际标签之间的差异。

目的:代价函数的主要目的是指导模型学习过程。通过最小化代价函数,模型学习调整其参数,从而使预测值尽可能接近实际值。

应用:在训练过程中,算法不断调整参数,以最小化代价函数的值。这个过程通常使用优化算法,如梯度下降。

常见的代价函数:

均方误差 (MSE):在回归问题中常用,计算预测值与实际值之差的平方的平均值。
交叉熵损失 (Cross-Entropy):常用于分类问题,特别是二分类和多分类问题。
绝对值误差:另一种回归问题中的损失函数,计算预测值与实际值之差的绝对值的平均。

用途

模型优化:代价函数是模型训练的引导者,它指示了模型应该如何调整其参数以改善性能。
模型评估:在训练和测试过程中,代价函数可以用来评估模型的性能。

优缺点
优点

提供了一个明确的目标以进行模型优化。
可以通过不同的代价函数适应不同类型的问题,如回归、分类等。
有助于理解模型的性能和错误。

缺点

某些代价函数可能导致局部最小值的问题,使得优化过程陷入局部最优而非全局最优。
对异常值敏感,特别是像均方误差这样的代价函数。
在不平衡的数据集上,某些代价函数(如交叉熵)可能不会提供最佳的性能指标。

结束

这一章,我们用房价预测得案例入门了支持向量机中常用得代价模型,下一章会学习一下梯度下降函数。

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

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

相关文章

把网页打包成app(简单) 2024

文章目录 **01-准备好要打包的网页文件,一般包含HTML-CSS-JS-静态资源文件:****02-下载HBuilderX,注册一个账号-必须****注****册账号****(免费)****03-新建一个H5项目:****04-然后把以下红框里面的这些文件都删掉&…

2024年【T电梯修理】报名考试及T电梯修理考试报名

题库来源:安全生产模拟考试一点通公众号小程序 T电梯修理报名考试考前必练!安全生产模拟考试一点通每个月更新T电梯修理考试报名题目及答案!多做几遍,其实通过T电梯修理复审考试很简单。 1、【多选题】TSGT7001-2009《检规(简称)…

C语言内存函数:memcpy、memcat、memmove介绍和模拟实现(实用性高,建议三连收藏)

目录 1.memcpy函数 1.1函数介绍 1.2函数示范使用 1.3函数的模拟实现 1.4补充 2.memmove函数 2.1函数介绍 2.2函数的使用示范 2.3函数的模拟实现 3.memcmp(内存比较函数) 3.1函数介绍 3.2函数的示范使用,有趣的例子 4.函数补充memset(内存…

Pandas教程11:关于pd.DataFrame.shift(1)数据下移的示例用法

---------------pandas数据分析集合--------------- Python教程71:学习Pandas中一维数组Series Python教程74:Pandas中DataFrame数据创建方法及缺失值与重复值处理 Pandas数据化分析,DataFrame行列索引数据的选取,增加&#xff0c…

【RT-DETR有效改进】UNetv2提出的一种SDI多层次特征融合模块(细节高效涨点)

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 本问给大家带来的改进机制是UNetv2提出的一种多层次特征融合模块(SDI)其是一种用于替换Concat操作的模块,SDI模块的主要思想是通过整合编码器生成的层级特征图来增强图像中的语义信息和细节信息。包括皮肤…

数据库管理-第144期 深入使用EMCC-01(20240204)

数据库管理144期 2024-02-04 数据库管理-第144期 深入使用EMCC-01(20240204)1 用户管理2 配置告警动作3 配置意外事件规则总结 数据库管理-第144期 深入使用EMCC-01(20240204) 作者:胖头鱼的鱼缸(尹海文&am…

redis(6)

文章目录 一、redis clusterRedis Cluster 工作原理Redis cluster 基本架构Redis cluster主从架构Redis Cluster 部署架构说明部署方式介绍 原生命令手动部署原生命令实战案例:利用原生命令手动部署redis cluster 实战案例:基于Redis 5 的redis cluster部…

Matplotlib绘制炫酷柱状图的艺术与技巧【第60篇—python:Matplotlib绘制柱状图】

文章目录 Matplotlib绘制炫酷柱状图的艺术与技巧1. 簇状柱状图2. 堆积柱状图3. 横向柱状图4. 百分比柱状图5. 3D柱状图6. 堆积横向柱状图7. 多系列百分比柱状图8. 3D堆积柱状图9. 带有误差线的柱状图10. 分组百分比柱状图11. 水平堆积柱状图12. 多面板柱状图13. 自定义颜色和样…

2024.2.5日总结(小程序开发2)

小程序的宿主环境 宿主环境 宿主环境指的是程序运行所必须的依赖环境。 Android系统和iOS系统是两个不同的宿主环境。安卓版的微信App不能再iOS环境下运行。Android是安卓软件的宿主环境,脱离了宿主环境的软件是没有意义的。 小程序的宿主环境 手机微信是小程序…

vue全家桶之状态管理Pinia

一、Pinia和Vuex的对比 1.什么是Pinia呢? Pinia(发音为/piːnjʌ/,如英语中的“peenya”)是最接近pia(西班牙语中的菠萝)的词; Pinia开始于大概2019年,最初是作为一个实验为Vue重新…

【ArcGIS微课1000例】0102:面状要素空洞填充

文章目录 一、实验描述二、实验数据三、实验步骤1. 手动补全空洞2. 批量补全空洞四、注意事项一、实验描述 在对地理数据进行编辑时,时常会遇到面数据中存在个别或大量的空洞,考虑实际情况中空洞的数量多少、分布情况,填充空洞区域可以采用逐个填充的方式,也可以采用快速大…

【Django开发】美多商城项目第3篇:用户注册和图片验证码开发(附代码,文档已分享)

本系列文章md笔记(已分享)主要讨论django商城项目开发相关知识。本项目利用Django框架开发一套前后端不分离的商城项目(4.0版本)含代码和文档。功能包括前后端不分离,方便SEO。采用Django Jinja2模板引擎 Vue.js实现…