每一秒的数据当成一个样本(共5秒),样本特征维度是4,那这个样本矩阵不就是5x4,那输出自然是5x预测结果吧
其实对预测值反归一化需要注意一个问题,那就是预测值的形状shape要和归一化前的数据形状相同,在多特征中也是如此,后面将会进行介绍。
#模型验证,在测试集中进行验证
test_pred = model.predict(X_test, verbose =1)
#对得到的预测值和真实值进行反归一化
original_test_pred=scaler.inverse_transform(test_pred)
original_y_test=scaler.inverse_transform(y_test)
计算各种评价参数其中包括MSE,RMSE,MAE,MAPE,r2
from sklearn import metrics
# MAPE需要自己实现
def mape(y_true, y_pred):
return np.mean(np.abs((original_y_test-original_test_pred) / original_y_test))
y_true = np.array(original_y_test)
y_pred = np.array(original_test_pred)
print('MSE:',metrics.mean_squared_error(original_y_test,original_test_pred))
print('RMSE:',np.sqrt(metrics.mean_squared_error(original_y_test,original_test_pred)))
print('MAE:',metrics.mean_absolute_error(original_y_test,original_test_pred))
print('MAPE:',mape(original_y_test,original_test_pred))
score = r2_score(original_y_test,original_test_pred)
print("r^2的值:",score)