调整 MLPRegressor 超参数

2024-07-01

我一直在尝试调整 MLP 模型的超参数来解决回归问题,但总是收到收敛警告。

这是我的代码

def mlp_model(X, Y):

estimator=MLPRegressor()


param_grid = {'hidden_layer_sizes': [(50,50,50), (50,100,50), (100,1)],
          'activation': ['relu','tanh','logistic'],
          'alpha': [0.0001, 0.05],
          'learning_rate': ['constant','adaptive'],
          'solver': ['adam']}

gsc = GridSearchCV(
    estimator,
    param_grid,
    cv=5, scoring='neg_mean_squared_error', verbose=0, n_jobs=-1)

grid_result = gsc.fit(X, Y)


best_params = grid_result.best_params_

best_mlp = MLPRegressor(hidden_layer_sizes = best_params["hidden_layer_sizes"], 
                        activation =best_params["activation"],
                        solver=best_params["solver"],
                        max_iter= 5000, n_iter_no_change = 200
              )

scoring = {
           'abs_error': 'neg_mean_absolute_error',
           'squared_error': 'neg_mean_squared_error',
           'r2':'r2'}

scores = cross_validate(best_mlp, X, Y, cv=10, scoring=scoring, return_train_score=True, return_estimator = True)
return scores

我收到的警告是

ConvergenceWarning: Stochastic Optimizer: Maximum iterations (5000) reached and the optimization hasn't converged yet.% self.max_iter, ConvergenceWarning)

我的数据集中有 87 个特征和 1384 行,全部都是数字,并且已使用 MinMaxScaler 进行缩放。 如果您能指导我调整超参数,我将不胜感激。


那么,您可以尝试三种选择,one很明显你增加了max_iter从 5000 到更高的数字,因为您的模型没有在 5000 epoch 内收敛,secondly,尝试使用batch_size,由于您有 1384 个训练示例,因此您可以使用 16,32 或 64 的批量大小,这有助于在 5000 次迭代内收敛模型,并且lastly,你总是可以增加learning_rate_init到一个稍高的值,因为学习率似乎很低,因为即使在 5000 次迭代之后,你的模型也没有收敛。希望这可以帮助

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

调整 MLPRegressor 超参数 的相关文章

  • Scrapy在使用crawlerprocess运行时抛出错误

    我用 python 编写了一个脚本 使用 scrapy 来收集网站上不同帖子的名称及其链接 当我从命令行执行脚本时 它可以完美地工作 现在 我的意图是使用运行脚本CrawlerProcess 我在不同的地方寻找类似的问题 但我找不到任何直接
  • 调用exe中定义的函数

    我需要知道一种从 python 脚本调用 exe 中定义的函数的方法 我知道如何从 py 文件调用整个 exe 除非您的 EXE 是 COM 对象 或者像 dll 那样专门导出某些函数 否则这是不可能的 对于 COM 方法 请查看以下资源
  • 在Python中使用argparse解析整个JSON

    我正在尝试使用 ARGPARSE 库在一个简单的参数中解析整个 Json 问题是当它遇到儿子内部的不同元素 例如 和 时 它会突然停止 这是测试代码 parse py import argparse parser argparse Argu
  • 导入pygame时出错

    我已经使用以下命令通过 Anaconda 安装了 pygame conda install channel https conda anaconda org kne pygame 然后我尝试导入 pygame 并收到以下错误 Traceba
  • 使用 Numpy 对多维数组进行切片/索引

    我有 3 个 4x4 数组 矩阵 使用以下命令创建 arr np linspace 1 48 48 reshape 3 4 4 矩阵如下所示 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2
  • 如何交换两个 DataFrame 列?

    In MATLAB to swap the first and second columns of a table A one would do this1 A A 2 1 3 end 如果有类似的方便方法可以做到这一点A是一只熊猫Data
  • 在django中使用pre_save时取消保存模型

    我有一个模型 class A models Model number models IntegerField 但是当我调用 A save 时 我想确保该数字是素数 或其他条件 否则应该取消保存指令 那么如何取消pre save信号接收器中的
  • 如何在 Anaconda(Jupyter 笔记本)中导入 python 自定义类

    我无法找到如何使用 anaconda 中的 Jupyter 笔记本在 Python 中导入自定义类 在我的工作文件夹中有一个文件 用户 ipynb 包含类名User 在同一文件夹中的其他文件中 我尝试使用以下命令导入此类 从用户导入用户 我
  • numpy 不规则跨步数组

    引用文档 http docs scipy org doc numpy reference arrays ndarray html internal memory layout of an ndarray关于内存中的 numpy 数组结构 N
  • ModuleNotFoundError:没有名为“discord_slash”的模块[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 I m trying to install a module called discord slash https py
  • 如何在不破坏 DataFrame.append() 的情况下子类化或以其他方式扩展 pandas DataFrame?

    我有一个复杂的对象 我想围绕 pandas DataFrame 构建 我尝试使用子类执行此操作 但是即使在使用时 附加到 DataFrame 也会重新初始化新实例中的所有属性 metadata 按照推荐here https pandas p
  • scikit learn中partial_fit遇到的错误

    在 scikit learn 中使用partial fit 函数进行训练时 即使训练后的模型行为正确并给出正确的输出 我也会在程序未终止的情况下收到以下错误 这怎么可能 以及这样做的后果是什么 这是值得担心的事情吗 usr lib pyth
  • 为什么追加会覆盖列表?

    我正在尝试 hackerrank 的一些问题并遇到了这个问题https www hackerrank com challenges list com经理 问题 https www hackerrank com challenges list
  • 在 Tensorflow 中导出推理图时出现“解析输入...形状不完整”错误

    我正在使用 Tensorflow 的对象检测 API 训练神经网络来检测汽车 我使用以下 senddex youtube 视频来学习和执行该过程 还有他的视频的文字版本 https pythonprogramming net testing
  • Scikit-Learn RFECV 仅基于网格分数的特征数量

    来自 scikit learnRFE文档 http scikit learn org stable modules generated sklearn feature selection RFE html sklearn feature s
  • 为什么“导入*”不好?

    建议不要使用import 在Python中 谁能分享一下原因 以便我下次可以避免这样做 因为它将很多东西放入您的名称空间中 可能会隐藏以前导入的其他对象 而您不会知道它 因为您不确切知道导入了什么 并且无法轻松找到某个东西是从哪个模块导入的
  • 使用 plt 在热图上绘制梯度箭头

    我正在尝试绘制箭头以可视化热图上的梯度 这是我到目前为止的代码 import matplotlib pyplot as plt import numpy as np function to plot lambda x y x y 2 hor
  • PySpark 将模型预测与未转换的数据对齐:最佳实践

    使用 PySpark 的 ML 模块 经常会发生以下步骤 在数据清理之后等 执行特征和目标转换管道 创建模型 从模型生成预测 将预测和原始数据集合并在一起 供业务用户和模型验证之用 摘取一段精简的代码片段 predictions model
  • 与 Pandas DataFrame 列表列的比较

    我有一个像这样的数据框 df col1 col2 a 1 2 b 3 4 c 3 9 我想根据匹配的输入数组获取行 因此如果我有数组 1 2 我可以获得 col1 col2 a 1 2 当我尝试使用此公式执行此操作时 它不起作用 df lo
  • 相当于 C++ 中用于缓冲读取的 python 生成器

    Guido Van Rossum 在此展示了 Python 的简单性article http neopythonic blogspot com 2008 10 sorting million 32 bit integers in 2mb h

随机推荐

  • 使用 PyQt5/Pyside2 设置重复的 SVG 图案作为主窗口/Qwidget 背景

    我已经通过生成了 SVG css 代码http www heropatterns com http www heropatterns com 我正在尝试使用它作为我的主窗口 Qwidget 的背景 我希望背景随着窗口变大或缩小而调整大小 我
  • 以编程方式解析和编辑 C++ 源文件

    我想以编程方式解析和编辑 C 源文件 我需要更改 添加代码的某些部分 即函数 类块等 中的代码 我也 最好 能够得到评论 我想做的部分事情可以用下面的代码来解释 CPlusPlusSourceParser cp new CPlusPlusS
  • 为什么线性读-混洗写并不比混洗读-线性写快?

    我目前正在尝试更好地了解内存 缓存相关的性能问题 我在某处读到 内存局部性对于读取比对于写入更重要 因为在前一种情况下 CPU 必须实际等待数据 而在后一种情况下 它可以将它们发送出去并忘记它们 考虑到这一点 我做了以下快速而肮脏的测试 我
  • 使用 ctypes 的 python 枚举模块

    之前enum模块已存在 c int或相关类型经常被用作替代枚举 但这没有也没有检查类型 现在 python 有一个enum模块 有没有办法直接使用它ctypes 是的 我们可以轻松创建自己的 CEnum 类 这要归功于 ctypes 允许我
  • 如何获取picturebox非公开成员的值?

    我需要从 picturebox 的非公共成员获取图像矩形的值 如何获得该值 提前致谢 这是使用反射获取值的方法 PropertyInfo pInfo pictureBox1 GetType GetProperty ImageRectangl
  • UIModalTransitionStyleFlipHorizo​​ntal 横向垂直翻转

    在横向模式下 从一个视图 导航控制器堆栈的一部分 转换到另一个视图作为模态视图 并将 UIModalTransitionStyleFlipHorizo ntal 设置为 modalTransitionStyle 视图在横向模式下垂直翻转 动
  • 在非 Spring-Boot 应用程序中使用 @ConfigurationProperties

    我正在尝试使用 ConfigurationProperties 在我的 Spring MVC 应用程序 非 Spring Boot 中启用配置绑定 到目前为止我做的唯一一件事就是添加了 Mavenspring boot依赖于我的项目 以获得
  • 如何根据父字段的值限制子字段的选择?

    我有几个相当复杂的表单 它们依赖于模型层次结构来分配ForeignKey价值观 我需要根据其父字段的值限制子字段可用的选择 问题是父字段的值可能来自初始数据 GET 请求 or来自绑定数据 POST 请求 因此 我最终多次复制了这种模式 c
  • 使用 fork/execvp 和系统调用之间的区别

    使用 system 执行二进制文件与使用 fork execvp 组合执行二进制文件有什么区别 安全性 可移植性 性能方面是否存在差异 系统还使用了一个fork exec 组合 如果你这样做fork exec您自己可以与正在运行的进程并行执
  • 将 .net 上的 AWS 开发工具包与 localstack 结合使用(TransferUtility/S3 - 设置端点)

    我有本地堆栈 https github com localstack localstack https github com localstack localstack 正在运行 并且能够使用 aws s3 cli 将文件上传到其中 我想要
  • 使用 dat.gui 保存参数似乎损坏了? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 在 dat gui 中保存参数似乎有问题 或者我遗漏了一些非常明显的东西 单击齿轮图标时会出现问题 该图标应打开一个弹出
  • Winforms 高 DPI 不缩放字体大小

    在我的 NET 4 7 Windows 窗体应用程序中 我按照说明配置了高 DPI 支持here https learn microsoft com en us dotnet desktop winforms high dpi suppor
  • 如何解决 VScode 终端打字时的滞后/不稳定问题?

    不确定这是否来自 Big Sur 安装 Docker 扩展还是其他什么 但在上周 我注意到在 VScode 终端中输入时 每次我完成 git add 时 git commit m etc git Push origin master 总是有
  • 如何在 firebase 上向其他用户授予权限?

    我在哪里可以在 firebase 设置上添加额外的用户 我找不到做这件事的地方 我必须在安全选项卡上使用 json 进行设置吗 Firebase 工程师 我很高兴地报告 我们刚刚推出了对此功能的支持 点击每个 Firebase 名称下方的
  • 如何为 apache beam 数据流的输出 csv 添加标头?

    我注意到在java SDK中 有一个函数可以让你编写csv文件的标题 https cloud google com dataflow java sdk JavaDoc com google cloud dataflow sdk io Tex
  • NodePort 暴露 端口连接被拒绝

    按照 Kubernetes 教程进行操作 日志看起来不错 但暴露的端口不起作用 使用 Chrome curl 的 连接被拒绝 使用 yaml 文件通过 NodePort ClusterIP 启动服务 posts srv yaml 已更新 a
  • Bootstrap 3 - 对齐列高

    创建一个用于教育目的的网站 但我遇到了网格 列高度问题 这是我尝试复制的网站图像 Click me https i stack imgur com dge5f jpg 这是我到目前为止所得到的 Click me https i stack
  • 以编程方式切换进度条的颜色

    所以我有一个图层列表 其中包含一个具有形状和纯色的项目 现在我想在我的代码中更改这种颜色
  • 如何使用实体框架 4.3(代码优先)和 SQL Azure 数据库记录 SQL

    我意识到这个类似的问题已经被问过几次 并且我已经尝试了这些问题中的建议但没有成功 我正在使用实体框架 4 3 并针对 SQL Azure 在联合数据库上 运行 我希望能够记录实体框架生成的 SQL 我用过实体分析器框架 http efpro
  • 调整 MLPRegressor 超参数

    我一直在尝试调整 MLP 模型的超参数来解决回归问题 但总是收到收敛警告 这是我的代码 def mlp model X Y estimator MLPRegressor param grid hidden layer sizes 50 50