机器学习 - 代价函数

场景

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

支持向量机(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):常用于分类问题,特别是二分类和多分类问题。

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

用途

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

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

优缺点
优点

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

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

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

缺点

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

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

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

结束

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

相关推荐
AI极客菌35 分钟前
Controlnet作者新作IC-light V2:基于FLUX训练,支持处理风格化图像,细节远高于SD1.5。
人工智能·计算机视觉·ai作画·stable diffusion·aigc·flux·人工智能作画
阿_旭37 分钟前
一文读懂| 自注意力与交叉注意力机制在计算机视觉中作用与基本原理
人工智能·深度学习·计算机视觉·cross-attention·self-attention
王哈哈^_^43 分钟前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
Power20246662 小时前
NLP论文速读|LongReward:基于AI反馈来提升长上下文大语言模型
人工智能·深度学习·机器学习·自然语言处理·nlp
数据猎手小k2 小时前
AIDOVECL数据集:包含超过15000张AI生成的车辆图像数据集,目的解决旨在解决眼水平分类和定位问题。
人工智能·分类·数据挖掘
好奇龙猫2 小时前
【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
人工智能·算法
沉下心来学鲁班2 小时前
复现LLM:带你从零认识语言模型
人工智能·语言模型
数据猎手小k2 小时前
AndroidLab:一个系统化的Android代理框架,包含操作环境和可复现的基准测试,支持大型语言模型和多模态模型。
android·人工智能·机器学习·语言模型
YRr YRr2 小时前
深度学习:循环神经网络(RNN)详解
人工智能·rnn·深度学习
sp_fyf_20242 小时前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-01
人工智能·深度学习·神经网络·算法·机器学习·语言模型·数据挖掘