Python 中的损失函数 - 轻松实现

在Python中,损失函数是任何机器学习模型的不可或缺的一部分( / 社区 / 教程 / 引入到机器学习)。

有多种方法来计算这种差异. 在本教程中,我们将看看一些更流行的损失函数。

**我们将在本教程中讨论以下四个损失函数。

  1. 正方形错误
  2. 正方形错误
  3. 正方形错误
  4. 跨 Entropy 损失

在这4个损失函数中,前三项适用于 [回归]( / 社区 / 教程 / 相关性 - 回归 - 分析 - 在Python)和最后一个适用于 [分类模型]( / 社区 / 教程 / 天真 - 贝斯算法)。

在Python中执行丢失函数

让我们看看如何在Python中实现这些损失函数。

平均平方错误(MSE)

平均平方错误(MSE)是预测和实际观测之间的差异的平均平方。

Mean Square Error Loss Functions in Python

** MSE 的 Python 实现方式如下:**

 1import numpy as np
 2def mean_squared_error(act, pred):
 3
 4   diff = pred - act
 5   differences_squared = diff ** 2
 6   mean_diff = differences_squared.mean()
 7
 8   return mean_diff
 9
10act = np.array([1.1,2,1.7])
11pred = np.array([1,1.7,1.5])
12
13print(mean_squared_error(act,pred))

输出:

10.04666666666666667

**您也可以从 sklearn 使用 mean_squared_error来计算 MSE。

1from sklearn.metrics import mean_squared_error
2act = np.array([1.1,2,1.7])
3pred = np.array([1,1.7,1.5])
4mean_squared_error(act, pred)

输出:

10.04666666666666667

根平均方块错误(RMSE)

根平均平方错误(RMSE)是计算为平均平方错误的平方根。

RMSE Loss Functions in Python

** RMSE 的 Python 实现方式如下:**

 1import numpy as np
 2def root_mean_squared_error(act, pred):
 3
 4   diff = pred - act
 5   differences_squared = diff ** 2
 6   mean_diff = differences_squared.mean()
 7   rmse_val = np.sqrt(mean_diff)
 8   return rmse_val
 9
10act = np.array([1.1,2,1.7])
11pred = np.array([1,1.7,1.5])
12
13print(root_mean_squared_error(act,pred))

输出:

10.21602468994692867

您也可以从 sklearn 使用 mean_squared_error来计算 RMSE. 让我们看看如何使用相同的函数实现 RMSE:

1from sklearn.metrics import mean_squared_error
2act = np.array([1.1,2,1.7])
3pred = np.array([1,1.7,1.5])
4mean_squared_error(act, pred, squared = False)

输出:

10.21602468994692867

如果设置参数_squared_True,则函数返回 MSE值;如果设置为 **False,则函数返回 RMSE值。

绝对错误(MAE)

平均绝对错误(MAE)是预测和实际观测之间的绝对差异的平均值。

MAE Loss Functions in Python

MAE 的 Python 实现方式如下:

 1import numpy as np
 2def mean_absolute_error(act, pred):
 3    diff = pred - act
 4    abs_diff = np.absolute(diff)
 5    mean_diff = abs_diff.mean()
 6    return mean_diff
 7
 8act = np.array([1.1,2,1.7])
 9pred = np.array([1,1.7,1.5])
10mean_absolute_error(act,pred)

输出:

10.20000000000000004

**您也可以使用 sklearn 的 mean_absolute_error来计算 MAE。

1from sklearn.metrics import mean_absolute_error
2act = np.array([1.1,2,1.7])
3pred = np.array([1,1.7,1.5])
4mean_absolute_error(act, pred)

输出:

10.20000000000000004

Python 中的跨 Entropy 丢失函数

交叉 Entropy 损失也被称为 ** 负日志概率 **. 这是最常用的分类问题。

让我们看看如何在二进制分类问题时计算错误。

让我们考虑一个分类问题,该模型试图将狗和猫分类。

** 查找错误的 python 代码在下面。

1from sklearn.metrics import log_loss
2log_loss(["Dog", "Cat", "Cat", "Dog"],[[.1, .9], [.9, .1], [.8, .2], [.35, .65]])

输出:

10.21616187468057912

**我们正在使用 sklearn 的 log_loss 方法。

函数调用中的第一个参数是每个输入的 **正确类标签列表,第二个参数是模型预测的 **概率列表。

概率是以下格式:

1[P(dog), P(cat)]

结论

本教程是关于在Python中的损失函数. 我们针对回归和分类问题涵盖了不同的损失函数。

Published At
Categories with 技术
comments powered by Disqus