当前位置:实例文章 » 其他实例» [文章]分类、回归常用损失函数

分类、回归常用损失函数

发布人:shili8 发布时间:2025-03-11 11:23 阅读次数:0

**分类和回归中的常用损失函数**

在机器学习中,损失函数(Loss Function)是衡量模型预测结果与真实值之间差异的指标。不同的任务(如分类、回归等)通常使用不同的损失函数来评估模型的性能。在本文中,我们将讨论常用的分类和回归损失函数。

**1. 分类中的损失函数**

在分类问题中,目标是预测样本属于哪一类。常用的分类损失函数包括:

### **1.1.0-1 损失函数(Zero-One Loss Function)**

0-1 损失函数是最简单的分类损失函数,它将正确预测的样本赋值为0,将错误预测的样本赋值为1。

import numpy as npdef zero_one_loss(y_true, y_pred):
 """
0-1 损失函数 Parameters:
 y_true (array): 真实标签 y_pred (array): 模型预测结果 Returns:
 float: 损失值 """
 return np.mean((y_true != y_pred).astype(int))


### **1.2. 交叉熵损失函数(Cross-Entropy Loss Function)**

交叉熵损失函数是0-1损失函数的改进版,它将正确预测的样本赋值为 -log(p),其中 p 是模型预测结果。

import numpy as npdef cross_entropy_loss(y_true, y_pred):
 """
 交叉熵损失函数 Parameters:
 y_true (array): 真实标签 y_pred (array): 模型预测结果 Returns:
 float: 损失值 """
 return -np.mean(np.log(y_pred[np.arange(len(y_true)), y_true]))


### **1.3. F1 分数损失函数(F1 Score Loss Function)**

F1 分数损失函数是分类准确率和召回率的调和平均值。

import numpy as npdef f1_score_loss(y_true, y_pred):
 """
 F1 分数损失函数 Parameters:
 y_true (array): 真实标签 y_pred (array): 模型预测结果 Returns:
 float: 损失值 """
 precision = np.mean((y_true == y_pred) & (y_true ==1))
 recall = np.mean((y_true == y_pred) & (y_true ==1)) / np.mean(y_true)
 return2 * precision * recall / (precision + recall)


**2. 回归中的损失函数**

在回归问题中,目标是预测样本的连续值。常用的回归损失函数包括:

### **2.1. 均方误差(Mean Squared Error)**

均方误差是最简单的回归损失函数,它将预测结果与真实值之间的平方差之和。

import numpy as npdef mean_squared_error(y_true, y_pred):
 """
 均方误差 Parameters:
 y_true (array): 真实值 y_pred (array): 模型预测结果 Returns:
 float: 损失值 """
 return np.mean((y_true - y_pred) **2)


### **2.2. 均绝对误差(Mean Absolute Error)**

均绝对误差是均方误差的改进版,它将预测结果与真实值之间的绝对差之和。

import numpy as npdef mean_absolute_error(y_true, y_pred):
 """
 均绝对误差 Parameters:
 y_true (array): 真实值 y_pred (array): 模型预测结果 Returns:
 float: 损失值 """
 return np.mean(np.abs(y_true - y_pred))


### **2.3. 平均绝对百分比误差(Mean Absolute Percentage Error)**

平均绝对百分比误差是均绝对误差的改进版,它将预测结果与真实值之间的绝对百分比差之和。

import numpy as npdef mean_absolute_percentage_error(y_true, y_pred):
 """
 平均绝对百分比误差 Parameters:
 y_true (array): 真实值 y_pred (array): 模型预测结果 Returns:
 float: 损失值 """
 return np.mean(np.abs((y_true - y_pred) / y_true)) *100


综上所述,分类和回归中的损失函数各有其特点和应用场景。选择合适的损失函数对于模型的性能优化至关重要。

其他信息

其他资源

Top