如何使用sklearn.mean_absolute_error为数据集每行生成MAE列?
计算每行商品的平均绝对误差(MAE)
现有数据集如下:
| Name | Jan Qty | Feb Qty | Mar Qty | Jan Fcst | Feb Fcst | Mar Fcst |
|---|---|---|---|---|---|---|
| Banana | 10 | 5 | 23 | 7 | 4 | 24 |
| Apple | 5 | 3 | 32 | 8 | 7 | 17 |
要为每个商品(每行)计算实际值与预测值的平均绝对误差,可通过以下代码实现:
import pandas as pd from sklearn.metrics import mean_absolute_error # 构造数据集 data = { 'Name': ['Banana', 'Apple'], 'Jan Qty': [10, 5], 'Feb Qty': [5, 3], 'Mar Qty': [23, 32], 'Jan Fcst': [7, 8], 'Feb Fcst': [4, 7], 'Mar Fcst': [24, 17] } df = pd.DataFrame(data) # 定义逐行计算MAE的函数 def calculate_mae(row): y_true = [row['Jan Qty'], row['Feb Qty'], row['Mar Qty']] y_pred = [row['Jan Fcst'], row['Feb Fcst'], row['Mar Fcst']] return mean_absolute_error(y_true, y_pred) # 添加MAE列 df['MAE'] = df.apply(calculate_mae, axis=1) print(df)
运行结果
执行上述代码后,得到带MAE列的数据集:
| Name | Jan Qty | Feb Qty | Mar Qty | Jan Fcst | Feb Fcst | Mar Fcst | MAE |
|---|---|---|---|---|---|---|---|
| Banana | 10 | 5 | 23 | 7 | 4 | 24 | 2.0 |
| Apple | 5 | 3 | 32 | 8 | 7 | 17 | 9.0 |
计算说明
- Banana的MAE:(|10-7| + |5-4| + |23-24|)/3 = (3+1+1)/3 ≈ 2.0
- Apple的MAE:(|5-8| + |3-7| + |32-17|)/3 = (3+4+15)/3 ≈ 9.0
内容的提问来源于stack exchange,提问作者Deryansyah
相关产品推荐
相关产品推荐

