让我们假设我为我的回归分析获得了以下 Pandas 数据框。import pandasimport mathimport numpydf = pandas.DataFrame(numpy.random.randint(0,100,size=(100, 2)), columns=['labels','predictions'])我现在想将 RMSE 计算为math.sqrt(numpy.mean((df["predictions"] - df["lables"]) ** 2)) 对于间隔为 7 的标签值在此,一个非常丑陋的代码可以完成这项工作……如果你能帮我将它python化就好了……# define stepstep = 7# initialize counteridx = 0# initialize empty dataframermse = pandas.DataFrame(columns=['bout' , 'rmse'],index=range(0,len(range(int(df['labels'].min())+step,int(df['labels'].max()),step))))# start loop to calculate rmse every 7 unitsfor i in range(int(df['labels'].min())+step,int(df['labels'].max()),step): # select values in interval df_bout = df[(df['labels']>=i-step) & (df['labels']<i)] # calculate rmse in interval rmse.loc[idx] = [str(i-step)+'-'+str(i),math.sqrt(numpy.mean((df_bout.predictions - df_bout.labels) ** 2))] # increment counter idx = idx + 1
添加回答
举报
0/150
提交
取消