gpt4 book ai didi

python - 类型错误 : only integer scalar arrays can be converted to a scalar index while calculating the RMSE

转载 作者:行者123 更新时间:2023-12-01 06:53:35 25 4
gpt4 key购买 nike

我正在尝试这样做:

for i in cols:
print('rmse value for', i, 'is : ', np.sqrt(mean_squared_error(pred[i], valid[i])))

数据框看起来像:

预测

           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

运行循环时出现以下错误:

类型错误:只有整数标量数组可以转换为标量索引

任何人都可以帮忙解决同样的问题吗?

编辑

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

谢谢

最佳答案

试试这个:

for i in range(len(cols)):
print('rmse value for', cols[i], 'is : ', np.sqrt(mean_squared_error(pred.iloc[i], valid.iloc[i])))

关于python - 类型错误 : only integer scalar arrays can be converted to a scalar index while calculating the RMSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58899779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com