""" models包功能: 该包主要实现了4种主要的时间序列预测模型:向量自回归(VAR)、自回归移动平均(ARIMA)、 季节性自回归移动平均 (SARIMA) 以及随机森林(Random Forest)。 modules: - utils.py: 包含用于数据读取和数据保存的通用函数。 - VAR_model.py: 实现向量自回归 (VAR)预测模型。 - ARIMA_model.py: 实现自回归移动平均 (ARIMA)预测模型。 - SARIMA_model.py: 实现季节性自回归移动平均 (SARIMA)预测模型。 - RF_model.py: 实现随机森林(Random Forest)预测模型。 函数: - run(): 是整个预测过程的主函数。该函数首先读取数据,然后调用所有模型进行预测, 最后把预测结果保存到文件中。 使用示例: ``` from models import run run_result = run(forecast_target=target_column, exog_columns=exog_columns_list, models=[VAR_Forecasting]) ``` """ from typing import List, Type from . import utils, VAR_Forecasting, ARIMA_Forecasting, SARIMA_Forecasting, RF_Forecasting __all__ = [ 'utils', 'VAR_Forecasting', 'ARIMA_Forecasting', 'SARIMA_Forecasting', 'RF_Forecasting' ] def run( forecast_target: str, exog_columns: List[str], steps: int = 20, file_path: str = 'data/normalized_df.csv', models: List[Type] = [ VAR_Forecasting, ARIMA_Forecasting, SARIMA_Forecasting, RF_Forecasting ], ) -> None: """ 执行数据读取、预处理、模型训练、预测并保存预测结果等一系列步骤的主函数。 Args: forecast_target (str): 需要被预测的目标变量的列名。 exog_columns (List[str]): 用于预测的特征变量的列名列表。 steps (int, default=20): 需要进行预测的步数。 file_path (str, default='data/normalized_df.csv'): 数据文件的路径。 models (List[Type]) : 需要运行的预测模型列表,默认包括VAR、ARIMA、SARIMA和Random Forest模型。 Returns: None """ # 载入数据 input_df = utils.read_csv(file_path) # 使用每个模型进行预测并保存结果 for model in models: try: model_name = model.__name__.split('.')[-1] print(f"正在执行 {model_name} 模型进行预测...") # 调用模型进行预测 model_df = model.run(input_df, forecast_target, exog_columns, steps) # 保存预测结果 utils.save_csv(model_df, f'data/{model_name}_df.csv') print(f"{model_name} 模型的预测结果已保存至 data/{model_name}_df.csv") except Exception as e: print(f"{model_name} 模型预测过程出现错误: {e}") print("所有模型预测都已完成。")