我有以下格式的数据集(在此链接中找到:https : //drive.google.com/open?id=0B2Iv8dfU4fTUY2ltNGVkMG05V00)。
time X Y
0.000543 0 10
0.000575 0 10
0.041324 1 10
0.041331 2 10
0.041336 3 10
0.04134 4 10
...
9.987735 55 239
9.987739 56 239
9.987744 57 239
9.987749 58 239
9.987938 59 239
Run Code Online (Sandbox Code Playgroud)
数据集中的第三列(Y)是我的真实值-这就是我想要预测(估计)的值。我想做一个预测Y(即Y根据的前100个滚动值来预测的当前值X。为此,我python使用编写以下脚本random forest regression model。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@author: deshag
"""
import pandas as pd
import numpy as np
from io import StringIO
from …Run Code Online (Sandbox Code Playgroud) 我想计算预测值和真值的平均绝对百分比误差(MAPE).我从这里找到了一个解决方案,但是这会给出错误并在行中显示无效的语法mask = a <> 0
def mape_vectorized_v2(a, b):
mask = a <> 0
return (np.fabs(a - b)/a)[mask].mean()
def mape_vectorized_v2(a, b):
File "<ipython-input-5-afa5c1162e83>", line 1
def mape_vectorized_v2(a, b):
^
SyntaxError: unexpected EOF while parsing
Run Code Online (Sandbox Code Playgroud)
我正在使用spyder3.我的预测值是类型np.array,真值是数据帧
type(predicted)
Out[7]: numpy.ndarray
type(y_test)
Out[8]: pandas.core.frame.DataFrame
Run Code Online (Sandbox Code Playgroud)
如何清除此错误并继续进行MAPE计算?
编辑:
predicted.head()
Out[22]:
Total_kWh
0 7.163627
1 6.584960
2 6.638057
3 7.785487
4 6.994427
y_test.head()
Out[23]:
Total_kWh
79 7.2
148 6.7
143 6.7
189 7.2
17 6.4
np.abs(y_test[['Total_kWh']] - predicted[['Total_kWh']]).head()
Out[24]:
Total_kWh
0 NaN
1 NaN …Run Code Online (Sandbox Code Playgroud)