LSTM, GRU, and MNN: Longitude and Latitude Error Analysis and Comparison
import pandas as pd import numpy as np import matplotlib.pyplot as plt
y_hat = pd.read_csv('y_hat.csv') # len = 93 predict_Y = pd.read_csv('predict_Y.csv') # len = 92 original = pd.read_csv('original.csv') # len = 100 y_pred = pd.read_csv('y_pred_mnn.csv') # len = 100
plt.figure(figsize=(10, 10)) plt.xlabel('Longitude Error (degree)') plt.ylabel('Latitude Error (degree)')
LSTM
a_lat_LSTM = [] b_lon_LSTM = [] for i in range(len(y_hat)): long = original.iloc[i + 7, 1] - y_hat.iloc[i, 1] lat = original.iloc[i+7, 0] - y_hat.iloc[i, 0] a_lat_LSTM.append(long) b_lon_LSTM.append(lat)
GRU
a_lat_GRU = [] b_lon_GRU = [] for i in range(len(predict_Y)): long = original.iloc[i+8, 1] - predict_Y.iloc[i, 1] lat = original.iloc[i+8, 0] - predict_Y.iloc[i, 0] a_lat_GRU.append(long) b_lon_GRU.append(lat)
MNN
a_lat_MNN = [] b_lon_MNN = [] for i in range(len(y_pred)): long = original.iloc[i, 1] - y_pred.iloc[i, 2] lat = original.iloc[i, 0] - y_pred.iloc[i, 1] a_lat_MNN.append(long) b_lon_MNN.append(lat)
计算R方误差
from sklearn.metrics import r2_score
r2_LSTM = r2_score(a_lat_LSTM + b_lon_LSTM, [0](len(a_lat_LSTM)+len(b_lon_LSTM))) r2_GRU = r2_score(a_lat_GRU + b_lon_GRU, [0](len(a_lat_GRU)+len(b_lon_GRU))) r2_MNN = r2_score(a_lat_MNN + b_lon_MNN, [0]*(len(a_lat_MNN)+len(b_lon_MNN)))
绘制散点图
plt.scatter(a_lat_LSTM+b_lon_LSTM, [0](len(a_lat_LSTM)+len(b_lon_LSTM)), label='LSTM') plt.scatter(a_lat_GRU+b_lon_GRU, [0](len(a_lat_GRU)+len(b_lon_GRU)), label='GRU') plt.scatter(a_lat_MNN+b_lon_MNN, [0]*(len(a_lat_MNN)+len(b_lon_MNN)), label='MNN')
添加图例和标题
plt.legend() plt.title('Longitude and Latitude Error Comparison')
显示图形
plt.show()
输出R方误差
print('R2 error for LSTM:', r2_LSTM) print('R2 error for GRU:', r2_GRU) print('R2 error for MNN:', r2_MNN)
原文地址: https://www.cveoy.top/t/topic/l6IL 著作权归作者所有。请勿转载和采集!