讓我們假設(shè)我為我的回歸分析獲得了以下 Pandas 數(shù)據(jù)框。import pandasimport mathimport numpydf = pandas.DataFrame(numpy.random.randint(0,100,size=(100, 2)), columns=['labels','predictions'])我現(xiàn)在想將 RMSE 計(jì)算為math.sqrt(numpy.mean((df["predictions"] - df["lables"]) ** 2)) 對于間隔為 7 的標(biāo)簽值在此,一個非常丑陋的代碼可以完成這項(xiàng)工作……如果你能幫我將它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
添加回答
舉報(bào)
0/150
提交
取消