计算回归的均方根误差

让我们假设我为我的回归分析获得了以下 Pandas 数据框。


import pandas

import math

import numpy


df = 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 step

step = 7

# initialize counter

idx = 0

# initialize empty dataframe

rmse = 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 units

for 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


达令说
浏览 215回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python