机器学习 - 代价函数

场景

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

支持向量机(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()

得图:
机器学习 - 代价函数_第1张图片
通过这个图片,我们看到有很多点,我们可以假设几个趋势来预测房价和面积的关系
机器学习 - 代价函数_第2张图片

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

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

我们在这个图中假设取出三个点,如下:
,我们以这三个点为例
机器学习 - 代价函数_第3张图片
其中 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,python,机器学习,人工智能)