You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何每次运行MLP Regressor模型得到的MSE结果均存在差异?

问题原因
  • 未固定随机种子:sklearn的MLPRegressor的权重初始化、训练时的样本shuffle、优化器的随机扰动都依赖随机种子,你代码中第一个版本将random_state设为None,简化版完全未配置该参数,会导致每次训练的初始状态和过程随机,最终结果自然不同。
  • 模型未充分收敛:你提供的简化版模型max_iter仅设为100,若训练至最大迭代数时损失仍未下降到阈值,每次停止时的模型状态会存在差异,直接导致MSE波动。
解决方法
  • 固定全链路随机种子:
    1. 在脚本开头固定全局随机源:
    import random
    import numpy as np
    random.seed(42)
    np.random.seed(42)
    
    1. 给MLPRegressor添加固定的random_state参数,例如:
    model = MLPRegressor(
        hidden_layer_sizes=(100,),
        activation='relu',
        solver='adam',
        alpha=0.0001,
        batch_size='auto',
        learning_rate='constant',
        learning_rate_init=0.001,
        power_t=0.4,
        max_iter=100,
        random_state=42 # 新增固定随机种子
    )
    
  • 确保模型充分收敛:
    1. 调大max_iter参数,或开启verbose=True观察训练损失变化,确认损失平稳后再停止训练
    2. 可适当调低tol阈值,避免模型提前停止,保证每次训练都能达到相同的收敛状态

内容的提问来源于stack exchange,提问作者john22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 14:57:03