c语言编程笔录

首页 >   > 笔记大全

笔记大全

常用的损失函数及Python实现示例

更新时间:2023-10-29

常用损失函数

在机器学习和深度学习中,损失函数是非常重要的一部分。它是衡量模型预测与实际值的差距的函数。通俗的说,损失函数越小,说明模型越准确。

下面将介绍几种常用的损失函数以及它们的Python实现。

平均绝对误差(Mean Absolute Error, MAE)

MAE是最简单的损失函数之一,它直接计算预测值和实际值之间的平均绝对误差。

import numpy as np

def mean_absolute_error(y_true, y_pred):
    """
    计算平均绝对误差
    :param y_true: 实际值
    :param y_pred: 预测值
    """
    return np.mean(np.abs(y_true - y_pred))

均方误差(Mean Squared Error, MSE)

MSE是常用的损失函数之一,它计算预测值和实际值之间的平均二次误差。

import numpy as np

def mean_squared_error(y_true, y_pred):
    """
    计算均方误差
    :param y_true: 实际值
    :param y_pred: 预测值
    """
    return np.mean(np.square(y_true - y_pred))

交叉熵损失函数(Cross Entropy Loss)

交叉熵是一种常用的损失函数,特别是在分类问题中。它衡量两个概率分布之间的差异。

import numpy as np

def cross_entropy_loss(y_true, y_pred):
    """
    计算交叉熵损失函数
    :param y_true: 实际标签值,必须是独热编码数组
    :param y_pred: 预测标签值概率,必须是概率数组
    """
    epsilon = 1e-10
    y_pred = np.clip(y_pred, epsilon, 1. - epsilon)
    n = y_pred.shape[0]
    ce = -np.sum(y_true * np.log(y_pred + epsilon))/n
    return ce

总结

本文介绍了三种常用的损失函数(MAE、MSE和交叉熵损失函数)的Python实现。在实际的机器学习中,选择何种损失函数取决于具体的问题以及数据。通过选择一个合适的损失函数,可以使训练过程更加高效和有效。