统计指标计算工具:预测与实际值的误差分析

这段代码定义了一个名为 calculate_metrics 的函数,其目的是从给定的Excel文件中读取数据,并计算预测值与实际值之间的几种统计指标。这些指标包括均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)、决定系数(R²)和偏差(Bias)。函数将这些指标的计算结果存储在一个字典中,并打印出来。

代码的执行流程如下:

  1. 读取Excel文件中的数据。
  2. 从数据中提取预测值和实际值。
  3. 计算样本数量。
  4. 分别计算MSE、RMSE、MAE、R²和Bias。
  5. 将计算结果存储在字典中,并打印出来。
  6. 如果在执行过程中发生错误,打印错误信息并返回None。
import pandas as pd
import numpy as np
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score

def calculate_metrics(file_path):
    """
    计算预测值与实际值之间的各种统计指标
    
    参数:
    file_path: Excel文件路径
    
    返回:
    dict: 包含各种统计指标的字典
    """
    try:
        # 读取Excel文件
        df = pd.read_excel(file_path)
        
        # 获取预测值和实际值
        y_pred = df['预测值'].values # 替换
        y_true = df['实际值'].values # 替换
        
        # 计算样本数量
        n_samples = len(y_true)
        
        # 计算MSE(均方误差)
        mse = mean_squared_error(y_true, y_pred)
        
        # 计算RMSE(均方根误差)
        rmse = np.sqrt(mse)
        
        # 计算MAE(平均绝对误差)
        mae = mean_absolute_error(y_true, y_pred)
        
        # 计算R2(决定系数)
        r2 = r2_score(y_true, y_pred)
        
        # 计算Bias(偏差)
        bias = np.mean(y_pred - y_true)
        
        # 将结果存储在字典中
        metrics = {
            'MSE': mse,
            'RMSE': rmse,
            'MAE': mae,
            'R2': r2,
            '样本数量': n_samples,
            'Bias': bias
        }
        
        # 打印结果
        print("\n统计指标计算结果:")
        print("-" * 30)
        for metric, value in metrics.items():
            if metric in ['MSE', 'RMSE', 'MAE', 'Bias']:
                print(f"{metric}: {value:.4f}")
            elif metric == 'R2':
                print(f"{metric}: {value:.6f}")
            else:
                print(f"{metric}: {value}")
        
        return metrics
        
    except Exception as e:
        print(f"发生错误:{str(e)}")
        return None

# 使用示例
file_path = r"文件路径"
metrics = calculate_metrics(file_path)

计算结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值