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

基于R语言Keras构建回归神经网络的技术咨询

你的Keras回归模型优化建议

嘿,作为Keras新手能快速搭出回归模型的雏形已经很赞啦!不过我看你的代码里有个关键小问题,还有些可以优化的地方,咱们一起捋捋:

先看你的代码

network <- keras_model_sequential() %>% 
  layer_dense(units = 15, activation = "sigmoid", input_shape = c(50)) %>% 
  layer_dense(units = 1)
summary(network)
network %>% compile(optimizer = optimizer_rmsprop(), 
                    loss = "mean_squared_error", 
                    metrics = c("accuracy"))
network %>% fit(train_features, train_target, epochs = 100)

最关键的问题:评估指标用错了!

你在compile步骤里指定了metrics = c("accuracy"),但accuracy是专门给分类任务用的指标,完全不适合回归问题!回归任务需要用和数值预测相关的评估指标,比如:

  • mean_absolute_error(MAE,平均绝对误差,直观反映预测值和真实值的平均差距)
  • mean_squared_error(MSE,和你选的损失函数一致,侧重惩罚大误差)
  • root_mean_squared_error(RMSE,均方根误差,和目标值单位一致,更易解读)

修改后的compile代码可以是这样:

network %>% compile(optimizer = optimizer_rmsprop(), 
                    loss = "mean_squared_error", 
                    metrics = c("mean_absolute_error"))

其他可以优化的小细节

  • 隐藏层激活函数:你现在用的sigmoid在回归任务的隐藏层里不是最优选择,推荐换成relu,它能有效缓解梯度消失问题,在大多数回归场景下表现更好:
    layer_dense(units = 15, activation = "relu", input_shape = c(50))
    
  • 加入验证集监控:训练时可以加上validation_split参数,用一部分训练数据做验证,能及时发现模型是否过拟合:
    network %>% fit(train_features, train_target, 
                    epochs = 100,
                    validation_split = 0.2)
    

要是你看模型摘要时有具体的疑问,也可以把摘要内容补充上来,我再帮你分析~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:15:23