diff --git a/basic_experiment.py b/basic_experiment.py new file mode 100644 index 0000000..06c7e9d --- /dev/null +++ b/basic_experiment.py @@ -0,0 +1,39 @@ +""" +实验1: 基础降噪与动力学特性恢复实验 (核心实验) +目标: + 验证 RC 降噪方法在降噪和动力学特性恢复方面的基本有效性,建立基准性能。 +实验设置: + - 混沌系统: 例如 Lorenz 或 Rossler 系统。 + - 噪声类型: 高斯白噪声 (可扩展到其他噪声)。 + - 噪声水平: 不同 SNR 设置。 + - RC 模型: 使用 ESN 等 RC 模型,调优储备池大小、谱半径等参数。 + - 训练方法: 监督学习 (例如 Ridge 回归)。 +评估指标: + - 降噪指标: SNR 提升、均方根误差 (RMSE)。 + - 动力学特性恢复指标: 吸引子重构质量、Lyapunov 指数估计误差、分形维数估计误差、预测精度。 +结果展示: + - 可视化时间序列、吸引子重构、PSD 对比图和表格展示指标结果。 +""" + +def load_data(): + # TODO: 生成并加载带噪及干净混沌系统数据 + pass + +def build_esn_model(): + # TODO: 构建 RC/ESN 模型并设置关键参数 + pass + +def train_model(): + # TODO: 利用训练集进行训练,使用监督学习方法 + pass + +def evaluate_results(): + # TODO: 计算 SNR, RMSE, 吸引子重构、Lyapunov 指数估计误差等指标 + pass + +if __name__ == "__main__": + # 主实验流程 + load_data() + build_esn_model() + train_model() + evaluate_results() diff --git a/comparison_experiment.py b/comparison_experiment.py new file mode 100644 index 0000000..d1dd286 --- /dev/null +++ b/comparison_experiment.py @@ -0,0 +1,34 @@ +""" +实验2: 对比实验 (突出 RC 方法的优势) +目标: + 将 RC 降噪方法与其他经典及机器学习降噪方法 (如 Wiener 滤波、卡尔曼滤波、SVR、GBRT、LSTM) 进行对比, + 在相同混沌系统、噪声类型、数据划分下评估各方法在降噪和动力学特性恢复方面的表现。 +实验设置: + 与实验1一致,加入不同降噪方法的实现和参数配置。 +结果展示: + - 表格展示各方法在不同噪声水平下的指标对比。 + - 图表展示 (例如 Lyapunov 指数估计误差的折线图)。 +""" + +def load_data(): + # TODO: 生成并加载混沌系统数据(带噪和干净) + pass + +def build_models(): + # TODO: 构建 RC 模型以及其他对比降噪模型(Wiener、卡尔曼、SVR、GBRT、LSTM等) + pass + +def train_models(): + # TODO: 训练各个模型,确保训练流程一致 + pass + +def evaluate_models(): + # TODO: 评估不同模型的降噪效果和动力学指标差异 + pass + +if __name__ == "__main__": + # 主对比实验流程 + load_data() + build_models() + train_models() + evaluate_models() diff --git a/noise_experiment.py b/noise_experiment.py new file mode 100644 index 0000000..5ab9ef4 --- /dev/null +++ b/noise_experiment.py @@ -0,0 +1,37 @@ +""" +实验4: 不同噪声类型实验 (鲁棒性分析,可选但加分) +目标: + 评估 RC 降噪方法在不同噪声类型下的表现,包括高斯白噪声、色噪声 (1/f噪声)、脉冲噪声和混合噪声, + 分析不同噪声条件下的降噪效果及动力学特性恢复能力。 +实验设置: + - 保持混沌系统、数据划分等设置不变,仅改变噪声类型。 +结果展示: + - 表格对比各噪声类型下的降噪及动力学指标。 + - 分析不同噪声下 RC 方法的鲁棒性和适应性。 +""" + +def load_data_with_noise(noise_type): + # TODO: 根据 noise_type 添加不同噪声 (Gaussian, 1/f, Impulse, Mixed) 到混沌数据 + pass + +def build_model(): + # TODO: 构建 RC 模型 (参数配置与基础实验保持一致) + pass + +def run_noise_experiment(): + noise_types = ["Gaussian", "Colored(1/f)", "Impulse", "Mixed"] + for nt in noise_types: + # 每种噪声下分别进行实验流程 + load_data_with_noise(nt) + build_model() + # TODO: 训练与评估 + # 记录并保存结果 + print(f"实验结束: 噪声类型 {nt}") + +def visualize_noise_results(): + # TODO: 绘制各噪声类型下的降噪及动力学指标对比图 + pass + +if __name__ == "__main__": + run_noise_experiment() + visualize_noise_results() diff --git a/sensitivity_experiment.py b/sensitivity_experiment.py new file mode 100644 index 0000000..51845a6 --- /dev/null +++ b/sensitivity_experiment.py @@ -0,0 +1,34 @@ +""" +实验3: 参数敏感性分析实验 (理解模型行为) +目标: + 分析 RC 模型关键参数 (储备池大小、谱半径、正则化系数) 对降噪性能及动力学特性恢复的影响, + 并尝试从动力学系统角度解释参数变化的效果。 +实验设置: + - 固定其他参数,仅改变一个参数值,重复实验并记录各项指标。 +结果展示: + - 绘制参数与各指标 (如 Lyapunov 指数估计误差) 之间的关系图。 + - 如有需要,生成多参数组合的热图。 +""" + +def load_data(): + # TODO: 加载基础混沌系统数据 + pass + +def build_model(n_size, spectrum_radius, reg_coeff): + # TODO: 构造 RC 模型,使用参数 n_size, spectrum_radius, reg_coeff + pass + +def run_experiment_for_params(): + # TODO: 针对不同参数组合,依次构建模型、训练、评估并记录结果 + # 如: n_size = [100, 200, 500, 1000]; spectrum_radius = [0.5, 0.8, 1.0, 1.2]; reg_coeff = [1e-5, 1e-4, 1e-3, 1e-2] + pass + +def visualize_results(): + # TODO: 根据记录结果绘制参数-指标的曲线图和热图 + pass + +if __name__ == "__main__": + # 参数敏感性实验主流程 + load_data() + run_experiment_for_params() + visualize_results() diff --git a/tools.py b/tools.py new file mode 100644 index 0000000..e69de29