我试着这样做:
for i in cols:
print('rmse value for', i, 'is : ', np.sqrt(mean_squared_error(pred[i], valid[i])))
数据帧如下所示:
pred
Var_1 Var_2 Var_3 %Variation
0 33397.7 784.753 1397.58 24.9725
1 33554 815.964 1423.88 24.3266
2 33573.1 837.888 1440.29 24.345
3 33497.4 852.705 1449.21 24.3451
4 33353.9 861.768 1452.31 24.3616
5 33165 866.294 1451.02 24.3878
6 32948.9 867.329 1446.53 24.4203
7 32719.8 865.761 1439.85 24.4563
8 32488.9 862.331 1431.79 24.4937
9 32264.1 857.645 1422.97 24.5308
10 32051.4 852.195 1413.9 24.5664
11 31854.7 846.365 1404.94 24.5997
12 31676.2 840.453 1396.38 24.6302
13 31517.2 834.68 1388.39 24.6575
14 31377.8 829.205 1381.1 24.6815
15 31257.5 824.134 1374.56 24.7024
16 31155.3 819.533 1368.81 24.7201
17 31069.8 815.433 1363.82 24.735
18 30999.5 811.84 1359.57 24.7473
有效
Var_1 Var_2 Var_3 %Variation
33000 672 1291 18.785056
36176 744 1357 12.802751
36187 762 1361 28.811764
39346 834 1493 36.818050
38998 793 1419 40.806172
42948 877 1514 14.824201
43359 910 1517 14.868140
43651 970 1618 6.852622
45644 979 1556 6.886780
45000 932 1557 18.831062
45851 1080 1590 44.930561
45496 1027 1581 18.911174
46262 1052 1618 18.915043
46385 1053 1619 12.895083
47091 1127 1609 22.930256
47172 1206 1657 44.968327
47101 1142 1635 12.965718
47426 1237 1645 33.004087
47853 1275 1708 4.976702
运行循环时出现以下错误:
TypeError:只有整数标量数组才能转换为标量索引
有人能帮我解决这个问题吗
编辑
valid是从以下数据中获取的验证集:
valid = data[int(0.8*(len(data))):]
pred是根据以下预测生成的数据帧:
pred = pd.DataFrame(index=range(0,len(prediction)),columns=[cols])
for j in range(0,4):
for i in range(0, len(prediction)):
pred.iloc[i][j] = prediction[i][j]
pred和valid的数据类型如下:
pred.dtypes
Out[197]:
Var_1 object
Var_2 object
Var_3 object
%Variation object
dtype: object
valid.dtypes
Out[201]:
Var_1 int64
Var_2 int64
Var_3 int64
%Variation float64
dtype: object
谢谢
试试这个:
相关问题 更多 >
编程相关推荐