data_epoch = datailoc 01 # 导入历元时间data1 = data_SSR_GPS_clk_veriloc 01 # 保存G01筛除粗差后的钟差值fig ax = pltsubplotsfigsize=10 6axplotdata1 label=Actualaxlegendpltshowtrain_size = intsat_epoch 07data_train =
可以使用pandas的rolling函数来实现RSW窗口的处理,将代码修改如下:
data_epoch = data.iloc[:, 0:1] # 导入历元时间 data1 = data_SSR_GPS_clk_ver.iloc[:, 0:1] # 保存G01筛除粗差后的钟差值 fig, ax = plt.subplots(figsize=(10, 6)) ax.plot(data1, label='Actual') ax.legend() plt.show() train_size = int(sat_epoch * 0.7) data_train = data1[:train_size] data_test = data1[train_size:]
使用RSW窗口对数据进行处理
window_size = 20 data1 = data1.rolling(window_size).mean().dropna()
arima_model = auto_arima(data1, seasonal=False, error_action='ignore', suppress_warnings=True) predictions_data, confint = arima_model.predict(n_periods=len(data_test), return_conf_int=True)
对预测值进行反向处理,还原为原始数据的值
predictions_data = pd.Series(predictions_data, index=data_test.index) predictions_data = predictions_data.rolling(window_size).mean().dropna()
rmse = np.sqrt(mean_squared_error(data_test, predictions_data)) r2 = r2_score(data_test, predictions_data) print("ARIMA Model RMSE:", rmse) print("ARIMA Model R^2 Score:", r2
原文地址: https://www.cveoy.top/t/topic/cHKj 著作权归作者所有。请勿转载和采集!