机器学习 - 代价函数

场景

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

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

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

初识代价函数

案例

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

设: y = c1 + c2X

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

python 复制代码
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):常用于分类问题,特别是二分类和多分类问题。

绝对值误差:另一种回归问题中的损失函数,计算预测值与实际值之差的绝对值的平均。

用途

模型优化:代价函数是模型训练的引导者,它指示了模型应该如何调整其参数以改善性能。

模型评估:在训练和测试过程中,代价函数可以用来评估模型的性能。

优缺点
优点

提供了一个明确的目标以进行模型优化。

可以通过不同的代价函数适应不同类型的问题,如回归、分类等。

有助于理解模型的性能和错误。

缺点

某些代价函数可能导致局部最小值的问题,使得优化过程陷入局部最优而非全局最优。

对异常值敏感,特别是像均方误差这样的代价函数。

在不平衡的数据集上,某些代价函数(如交叉熵)可能不会提供最佳的性能指标。

结束

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

相关推荐
笑衬人心。9 分钟前
初学Spring AI 笔记
人工智能·笔记·spring
luofeiju19 分钟前
RGB下的色彩变换:用线性代数解构色彩世界
图像处理·人工智能·opencv·线性代数
测试者家园21 分钟前
基于DeepSeek和crewAI构建测试用例脚本生成器
人工智能·python·测试用例·智能体·智能化测试·crewai
张较瘦_25 分钟前
[论文阅读] 人工智能 + 软件工程 | Call Me Maybe:用图神经网络增强JavaScript调用图构建
论文阅读·人工智能·软件工程
大模型真好玩26 分钟前
准确率飙升!Graph RAG如何利用知识图谱提升RAG答案质量(四)——微软GraphRAG代码实战
人工智能·python·mcp
Baihai_IDP39 分钟前
vec2text 技术已开源!一定条件下,文本嵌入向量可“近乎完美地”还原
人工智能·面试·llm
江太翁44 分钟前
Pytorch torch
人工智能·pytorch·python
拓端研究室1 小时前
专题:2025即时零售与各类人群消费行为洞察报告|附400+份报告PDF、原数据表汇总下载
大数据·人工智能
网安INF1 小时前
深度学习中的逻辑回归:从原理到Python实现
人工智能·python·深度学习·算法·逻辑回归
Despacito0o1 小时前
ESP32-s3摄像头驱动开发实战:从零搭建实时图像显示系统
人工智能·驱动开发·嵌入式硬件·音视频·嵌入式实时数据库