机器学习 - 代价函数

场景

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

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

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

用途

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

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

优缺点
优点

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

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

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

缺点

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

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

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

结束

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

相关推荐
Elastic 中国社区官方博客2 分钟前
使用 Elastic AI Assistant for Search 和 Azure OpenAI 实现从 0 到 60 的转变
大数据·人工智能·elasticsearch·microsoft·搜索引擎·ai·azure
江_小_白1 小时前
自动驾驶之激光雷达
人工智能·机器学习·自动驾驶
yusaisai大鱼2 小时前
TensorFlow如何调用GPU?
人工智能·tensorflow
珠海新立电子科技有限公司5 小时前
FPC柔性线路板与智能生活的融合
人工智能·生活·制造
IT古董5 小时前
【机器学习】机器学习中用到的高等数学知识-8. 图论 (Graph Theory)
人工智能·机器学习·图论
曼城周杰伦5 小时前
自然语言处理:第六十三章 阿里Qwen2 & 2.5系列
人工智能·阿里云·语言模型·自然语言处理·chatgpt·nlp·gpt-3
余炜yw6 小时前
【LSTM实战】跨越千年,赋诗成文:用LSTM重现唐诗的韵律与情感
人工智能·rnn·深度学习
莫叫石榴姐6 小时前
数据科学与SQL:组距分组分析 | 区间分布问题
大数据·人工智能·sql·深度学习·算法·机器学习·数据挖掘
如若1237 小时前
利用 `OpenCV` 和 `Matplotlib` 库进行图像读取、颜色空间转换、掩膜创建、颜色替换
人工智能·opencv·matplotlib
YRr YRr7 小时前
深度学习:神经网络中的损失函数的使用
人工智能·深度学习·神经网络