在Python中,损失函数是任何机器学习模型的不可或缺的一部分( / 社区 / 教程 / 引入到机器学习)。
有多种方法来计算这种差异. 在本教程中,我们将看看一些更流行的损失函数。
**我们将在本教程中讨论以下四个损失函数。
- 正方形错误
- 正方形错误
- 正方形错误
- 跨 Entropy 损失
在这4个损失函数中,前三项适用于 [回归]( / 社区 / 教程 / 相关性 - 回归 - 分析 - 在Python)和最后一个适用于 [分类模型]( / 社区 / 教程 / 天真 - 贝斯算法)。
在Python中执行丢失函数
让我们看看如何在Python中实现这些损失函数。
平均平方错误(MSE)
平均平方错误(MSE)是预测和实际观测之间的差异的平均平方。
** 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 的 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 的 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中的损失函数. 我们针对回归和分类问题涵盖了不同的损失函数。