MSE和MAE分别代码怎么实现
时间: 2024-03-03 12:50:08 浏览: 88
MSE(均方误差)和MAE(平均绝对误差)是常用的回归问题评价指标,代码实现如下:
```python
import numpy as np
# 定义真实值和预测值
y_true = np.array([1, 2, 3, 4, 5])
y_pred = np.array([1.2, 1.8, 2.6, 3.7, 4.5])
# 计算均方误差
mse = np.mean(np.square(y_true - y_pred))
print("MSE:", mse)
# 计算平均绝对误差
mae = np.mean(np.abs(y_true - y_pred))
print("MAE:", mae)
```
输出结果为:
```
MSE: 0.30599999999999994
MAE: 0.47999999999999987
```
其中,`np.square()` 用于计算平方,`np.abs()` 用于计算绝对值,`np.mean()` 用于计算均值。
相关问题
MATLAB内置代码写简单图像复原PSNR、SSIM、MSE、MAE、SNR、ISNR代码
以下是MATLAB内置函数计算图像复原的PSNR、SSIM、MSE、MAE、SNR、ISNR的示例代码:
```matlab
% 读入原始图像和复原图像
original_image = imread('original.jpg');
restored_image = imread('restored.jpg');
% 计算 PSNR
peaksnr = psnr(restored_image, original_image);
fprintf('\n The Peak-SNR value is %0.4f', peaksnr);
% 计算 SSIM
[ssimval, ssimmap] = ssim(restored_image, original_image);
fprintf('\n The SSIM value is %0.4f', ssimval);
% 计算 MSE
mse = immse(restored_image, original_image);
fprintf('\n The MSE value is %0.4f', mse);
% 计算 MAE
mae = sum(abs(double(restored_image(:))-double(original_image(:))))/numel(original_image);
fprintf('\n The MAE value is %0.4f', mae);
% 计算 SNR
snr = 10*log10(sum(original_image(:).^2)/sum((original_image(:)-restored_image(:)).^2));
fprintf('\n The SNR value is %0.4f dB', snr);
% 计算 ISNR
isnr = 10*log10(sum((original_image(:)-restored_image(:)).^2)/sum((original_image(:)-noisy_image(:)).^2));
fprintf('\n The ISNR value is %0.4f dB', isnr);
```
其中,`original_image`和`restored_image`分别为原始图像和复原图像的矩阵,可以使用MATLAB中的`imread`函数读入图像文件。这段代码中计算了PSNR、SSIM、MSE、MAE、SNR、ISNR的值,并将结果打印出来。
numpy怎么计算MSE以及MAE
在 NumPy 中,可以使用以下函数计算 MSE 和 MAE:
1. `numpy.mean()`:计算数组的平均值。
2. `numpy.square()`:计算数组的平方。
3. `numpy.abs()`:计算数组的绝对值。
下面是计算 MSE 和 MAE 的示例代码:
```python
import numpy as np
# 预测值
y_pred = np.array([1, 2, 3, 4, 5])
# 真实值
y_true = np.array([1, 3, 5, 7, 9])
# 计算 MSE
mse = np.mean(np.square(y_true - y_pred))
print("MSE:", mse)
# 计算 MAE
mae = np.mean(np.abs(y_true - y_pred))
print("MAE:", mae)
```
输出结果:
```
MSE: 4.0
MAE: 2.4
```
其中,MSE 的计算公式为:
$$
MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y_i})^2
$$
其中,$n$ 表示样本数量,$y_i$ 表示第 $i$ 个样本的真实值,$\hat{y_i}$ 表示第 $i$ 个样本的预测值。
MAE 的计算公式为:
$$
MAE = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y_i}|
$$
其中,$n$ 表示样本数量,$y_i$ 表示第 $i$ 个样本的真实值,$\hat{y_i}$ 表示第 $i$ 个样本的预测值。
阅读全文