写一个在jupyter notebooks上计算MSE的代码
时间: 2024-02-16 14:04:54 浏览: 82
好的,以下是一个在 Jupyter Notebooks 上计算均方误差(MSE)的 Python 代码:
```python
import numpy as np
def mean_squared_error(y_true, y_pred):
"""
计算均方误差(MSE)
参数:
y_true - 实际值
y_pred - 预测值
返回:
MSE
"""
mse = np.mean(np.square(y_true - y_pred))
return mse
```
在上面的代码中,我们首先导入了 NumPy 库,这是一个广泛用于科学计算的 Python 库。然后定义了一个函数 `mean_squared_error`,它接受两个参数 `y_true` 和 `y_pred`,分别代表实际值和预测值。函数的主要内容是使用 NumPy 库中的 `mean` 和 `square` 函数计算均方误差,并将其返回。
你可以在 Jupyter Notebooks 中调用这个函数并传入实际值和预测值,类似于这样:
```python
y_true = [1, 2, 3, 4, 5]
y_pred = [1.2, 2.3, 3.1, 4.2, 5.5]
mse = mean_squared_error(y_true, y_pred)
print("MSE:", mse)
```
输出结果应该为:
```
MSE: 0.2859999999999999
```
相关问题
写一个在jupyter notebooks上计算图像压缩前后两张图像的MSE的代码
好的,以下是一个在 Jupyter Notebooks 上计算图像压缩前后两张图像的均方误差(MSE)的 Python 代码:
```python
import numpy as np
from PIL import Image
def mse(image1, image2):
"""
计算两张图像的均方误差(MSE)
参数:
image1 - 第一张图像
image2 - 第二张图像
返回:
MSE
"""
# 将图像转换为 NumPy 数组
img1 = np.array(image1)
img2 = np.array(image2)
# 计算 MSE
mse = np.mean(np.square(img1 - img2))
return mse
# 加载原始图像和压缩后的图像
original_image = Image.open('original_image.jpg')
compressed_image = Image.open('compressed_image.jpg')
# 计算 MSE
mse = mse(original_image, compressed_image)
# 输出结果
print("MSE:", mse)
```
在上面的代码中,我们使用了 Python 的 Pillow 库(也称为 PIL),它提供了处理图像的功能。首先导入了 NumPy 库和 PIL 库中的 `Image` 类,然后定义了一个函数 `mse`,它接受两个参数 `image1` 和 `image2`,分别代表第一张图像和第二张图像。函数的主要内容是将图像转换为 NumPy 数组,并使用 NumPy 库中的 `mean` 和 `square` 函数计算均方误差。
接下来,我们使用 `Image.open()` 函数加载原始图像和压缩后的图像,并将它们传递给 `mse` 函数计算 MSE。最后,我们输出结果。
请注意,`Image.open()` 函数需要图像文件的路径作为参数。在这个例子中,我们假设原始图像和压缩后的图像分别保存在 `original_image.jpg` 和 `compressed_image.jpg` 文件中。你需要根据实际情况修改文件路径。
已经有了压缩前后的彩色图像,写一个在jupyter notebooks上计算七压缩率的代码
好的,以下是一个在 Jupyter Notebook 上计算七种压缩率的代码示例。这个代码使用了 Python 的 Pillow 库进行图像的读取和压缩,以及 NumPy 库进行数组计算。
```python
from PIL import Image
import numpy as np
import io
# 读取原始图像和压缩后图像
original_img = Image.open('test.jpg')
compressed_img = Image.open('test_compressed.jpg')
# 将图像转换为 NumPy 数组
original_img_arr = np.array(original_img)
compressed_img_arr = np.array(compressed_img)
# 计算原始图像大小
original_size = original_img_arr.nbytes
# 计算压缩后图像大小
compressed_size = compressed_img_arr.nbytes
# 计算压缩率
compression_ratio = compressed_size / original_size
# 计算峰值信噪比(PSNR)
mse = np.mean((original_img_arr - compressed_img_arr) ** 2)
psnr = 10 * np.log10(255**2 / mse)
# 计算结构相似性指数(SSIM)
from skimage.metrics import structural_similarity as ssim
ssim_score = ssim(original_img_arr, compressed_img_arr, multichannel=True)
# 计算峰值信噪比改进比(PSNR-HVS)
from skimage.metrics import peak_signal_noise_ratio as psnr_hvs
psnr_hvs_score = psnr_hvs(original_img_arr, compressed_img_arr, data_range=original_img_arr.max())
# 计算多样性信噪比(MS-SSIM)
from skimage.metrics import multi_scale_ssim as ms_ssim
ms_ssim_score = ms_ssim(original_img_arr, compressed_img_arr, data_range=original_img_arr.max(), win_size=11)
# 计算复杂度压缩比(CPC)
cpc = psnr / compression_ratio
# 输出七种压缩率
print(f"Compression ratio: {compression_ratio:.4f}")
print(f"Peak Signal-to-Noise Ratio (PSNR): {psnr:.2f}")
print(f"Structural Similarity Index (SSIM): {ssim_score:.4f}")
print(f"Peak Signal-to-Noise Ratio - HVS (PSNR-HVS): {psnr_hvs_score:.2f}")
print(f"Multi-Scale Structural Similarity (MS-SSIM): {ms_ssim_score:.4f}")
print(f"Complexity-Compression Ratio (CPC): {cpc:.2f}")
print(f"Original size: {original_size:,}")
print(f"Compressed size: {compressed_size:,}")
```
在这个示例中,我们首先使用 Pillow 库读取了一张名为 `test.jpg` 的原始彩色图像和一张名为 `test_compressed.jpg` 的压缩后彩色图像,并将它们分别转换为 NumPy 数组。然后,我们使用 NumPy 和 scikit-image 库计算了七种压缩率,包括压缩率、峰值信噪比(PSNR)、结构相似性指数(SSIM)、峰值信噪比改进比(PSNR-HVS)、多尺度结构相似性指数(MS-SSIM)、复杂度压缩比(CPC)以及原始图像大小和压缩后图像大小。最后,我们输出了这七种压缩率的结果。
请注意,这个示例中使用了 scikit-image 库的一些函数,如果您的环境中没有安装该库,请先使用 pip 或 conda 进行安装。另外,这个示例中计算的七种压缩率可能并不完整,具体的压缩率指标可以根据需要进行调整。
阅读全文