我正在尝试计算数据框中每一行的 MSE,
下面是我的代码-
import pandas as pd
s={'AValues':[1,1,2,2],'month':[2016,2017,2018,2019],'fvalues':[55,66,77,88],'Fruits':['Apple','Mango','Orange','Banana']}
p=pd.DataFrame(data=s)
mse_df=pd.pivot_table(p,index='Fruits',columns='month',values=['AValues','fvalues'])
mse_df=mse_df.fillna(0)
我想在这里计算苹果、香蕉、芒果和橙子的 mse,即逐行计算。 (AValues-实际值,fvalues-预测值)
我正在尝试下面的代码-
from sklearn.metrics import mean_squared_error
mean_squared_error(mse_df['AValues'],mse_df['fvalues'])
但是,它给了我总的 mse,而不是单独的或逐行的。
您能帮我看看如何找到 mse 吗?
最佳答案
我很惊讶您导入的这个 mean_square_error
函数没有轴 kwarg。相反,使用numpy
import numpy as np
MSE = np.mean((mse_df['AValues'] - mse_df['fvalues'])**2, axis=ax)
其中 ax
是您要计算平均值的轴。我对 pandas 不太熟悉,但如果它们与 numpy 数组/矩阵/类似的形状相同,它可能是 axis=1
,尽管它可能是 axis=0
关于Python计算每一行的MSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71373649/