温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
  • 忘记密码?
登录注册×
获取短信验证码
其他方式登录
点击 登录注册 即表示同意 《亿速云用户服务条款》
  • 服务器
  • 数据库
  • 开发技术
  • 网络安全
  • 互联网科技
登 录 注册有礼
最新更新 网站标签 地图导航
产品
  • 首页 > 
  • 教程 > 
  • 互联网科技 > 
  • 大数据 > 
  • 机器学习中超参数优化的方法是什么

机器学习中超参数优化的方法是什么

发布时间:2021-12-27 10:33:46 来源:亿速云 阅读:512 作者:iii 栏目: 大数据

这篇文章主要讲解了“机器学习中超参数优化的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“机器学习中超参数优化的方法是什么”吧!

机器学习中超参数优化的方法是什么  

介绍

机器学习模型由两种不同类型的参数组成:

  • 超参数=是用户在开始训练之前可以任意设置的所有参数(例如,Random Forest中的估计量)。

  •  取而代之的是在模型训练过程中学习模型参数(例如,神经网络中的权重,线性回归)。

模型参数定义了如何使用输入数据来获得所需的输出,并在训练时进行学习。相反,超参数首先确定我们的模型的结构。

机器学习模型调整是一种优化问题。我们有一组超参数,我们的目标是找到它们的值的正确组合,这可以帮助我们找到函数的最小值(例如,损耗)或最大值(例如,精度)。

当比较不同的机器学习模型如何对数据集执行时,这尤其重要。实际上,例如将具有最佳超参数的SVM模型与尚未优化的随机森林模型进行比较将是不公平的。

在这篇文章中,将说明以下超参数优化方法:

  1. 手动搜寻

  2. 随机搜寻

  3. 网格搜索

  4. 自动超参数调整(贝叶斯优化,遗传算法)

  5. 人工神经网络(ANN)调整

机器学习中超参数优化的方法是什么  

为了演示如何在Python中执行超参数优化,我决定对信用卡欺诈检测Kaggle数据集执行完整的数据分析 。本文的目的是正确分类哪些信用卡交易应标记为欺诈或真实(二进制分类)。该数据集在分发前已被匿名化,因此,大多数功能的含义尚未公开。

在这种情况下,我决定仅使用数据集的一个子集,以加快训练时间并确保在两个不同的类之间实现完美的平衡。此外,仅使用了少量功能就使优化任务更具挑战性。最终数据集如下图所示(图2)。

机器学习中超参数优化的方法是什么  

机器学习

首先,我们需要将数据集分为训练集和测试集。

在本文中,我们将使用随机森林分类器作为模型进行优化。

随机森林模型由大量不相关的决策树形成,这些决策树共同构成一个整体。在随机森林中,每个决策树都进行自己的预测,并且将整体模型输出选择为最常出现的预测。

现在,我们可以从计算基本模型的准确性开始。

机器学习中超参数优化的方法是什么  

将随机森林分类器与默认的scikit-learn参数一起使用可获得95%的整体准确性。现在让我们看看是否应用一些优化技术可以提高精度。

手动搜寻

使用“手动搜索”时,我们会根据我们的判断/经验选择一些模型超参数。然后,我们训练模型,评估模型的准确性并重新开始该过程。重复该循环,直到获得满意的准确性为止。

随机森林分类器使用的主要参数是:

  • 标准 =用于评估分割质量的函数。

  • max_depth  =每棵树中允许的最大级别数。

  • max_features  =拆分节点时考虑的最大特征数。

  • min_samples_leaf  =可以存储在树叶中的最小样本数。

  • min_samples_split  =节点中导致节点分裂所需的最小样本数。

  • n_estimators  =集成树的数量。

可以在scikit-learn 文档中找到有关随机森林参数的更多信息。

作为手动搜索的示例,我尝试指定模型中的估计量。不幸的是,这并没有导致准确性的提高。

机器学习中超参数优化的方法是什么  

随机搜寻

在随机搜索中,我们创建超参数网格,并仅基于这些超参数的某些随机组合来训练/测试模型。在此示例中,我另外决定对训练集执行交叉验证。

在执行机器学习任务时,我们通常将数据集分为训练集和测试集。这样做是为了在训练模型后测试我们的模型(通过这种方式,我们可以在处理看不见的数据时检查其性能)。使用交叉验证时,我们将训练集划分为其他N个分区,以确保我们的模型不会过度拟合我们的数据。

最常用的交叉验证方法之一是K折验证。在K-Fold中,我们将训练集划分为N个分区,然后使用N-1个分区迭代地训练模型,并使用剩余的分区进行测试(在每次迭代中,我们都会更改剩余的分区)。一旦对模型进行了N次训练,我们就可以平均每次迭代获得的训练结果,从而获得整体训练效果结果。

机器学习中超参数优化的方法是什么  

在实现超参数优化时使用交叉验证非常重要。这样,我们可能会避免使用一些对训练数据非常有效但对测试数据却不太好的超参数。

现在,我们可以通过首先定义一个超参数网格来开始实现随机搜索,在调用RandomizedSearchCV()时将随机采样该超参数网格 。对于此示例,我决定将训练集划分为4折(cv = 4),并选择80作为要采样的组合数(n_iter = 80)。然后,使用scikit-learn  best_estimator_ 属性,可以检索在训练过程中表现最佳的超参数集,以测试我们的模型。

训练完模型后,我们可以可视化更改其某些超参数如何影响整体模型的准确性(图4)。在这种情况下,我决定观察改变估计量和准则的数量如何影响我们的随机森林准确性。

机器学习中超参数优化的方法是什么  

然后,我们可以使可视化更具交互性,从而使这一步骤更进一步。在下面的图表中,我们可以检查(使用滑块)在模型中考虑估计的min_split和min_leaf参数时,改变估算器数量如何影响模型的整体准确性。

现在,我们可以使用随机搜索评估模型的性能。在这种情况下,与我们的基本模型相比,使用随机搜索会导致准确性不断提高。

机器学习中超参数优化的方法是什么  

网格搜索

在网格搜索中,我们建立了一个超参数网格,并在每种可能的组合上训练/测试我们的模型。

为了选择在Grid Search中使用的参数,我们现在可以查看哪些参数与Random Search一起使用效果最好,并根据这些参数形成网格,以查看是否可以找到更好的组合。

可以使用scikit-learn GridSearchCV() 函数在Python中实现网格搜索 。同样在这种情况下,我决定将训练集划分为4折(cv = 4)。

使用网格搜索时,将尝试网格中所有可能的参数组合。在这种情况下,训练期间将使用128000个组合(2×10×4×4×4×10)。相反,在前面的“网格搜索”示例中,仅使用了80种组合。

机器学习中超参数优化的方法是什么  

与随机搜索相比,网格搜索速度较慢,但由于它可以遍历整个搜索空间,因此总体上更有效。取而代之的是,随机搜索可以更快更快,但是可能会错过搜索空间中的一些重要点。

自动超参数调整

使用自动超参数调整时,将使用以下技术来标识要使用的模型超参数:贝叶斯优化,梯度下降和进化算法。

贝叶斯优化

贝叶斯优化可以使用Hyperopt库在Python中执行。贝叶斯优化使用概率来找到函数的最小值。最终目的是找到函数的输入值,该函数可以为我们提供尽可能低的输出值。

贝叶斯优化已被证明比随机,网格或手动搜索更有效。因此,贝叶斯优化可以在测试阶段带来更好的性能,并减少优化时间。

在Hyperopt中,可以实现贝叶斯优化,为函数fmin()提供3个三个主要参数 。

  • 目标函数 =定义要最小化的损失函数。

  • 域空间 =定义要测试的输入值的范围(在贝叶斯优化中,该空间为每个使用的超参数创建概率分布)。

  • 优化算法 =定义用于选择最佳输入值以在每次新迭代中使用的搜索算法。

此外,还可以在fmin()中定义  要执行的最大评估数。

贝叶斯优化可以通过考虑过去的结果来选择输入值,从而减少搜索迭代的次数。这样,我们可以从一开始就将搜索集中在更接近所需输出的值上。

现在,我们可以使用fmin() 函数运行贝叶斯优化器 。 首先创建一个 Trials()对象,以便稍后可视化fmin() 函数运行时正在发生的事情 (例如,loss函数的变化方式以及Hyperparameters的使用方式变化)。

机器学习中超参数优化的方法是什么  

现在,我们可以检索识别出的最佳参数集,并使用 在训练过程中创建的最佳字典来测试模型 。一些参数已 使用索引数字方式存储在 最佳字典中,因此,我们需要先将它们转换回字符串,然后再将其输入到随机森林中。

使用贝叶斯优化的分类报告如下所示。

机器学习中超参数优化的方法是什么  

遗传算法

遗传算法试图将自然选择机制应用于机器学习环境。它们受到达尔文自然选择过程的启发,因此通常也称为进化算法。

假设我们创建了具有一些预定义超参数的N个机器学习模型。然后,我们可以计算每个模型的准确性,并决定只保留一半模型(性能最好的模型)。现在,我们可以生成具有与最佳模型相似的超参数的后代,以便再次获得N个模型的种群。在这一点上,我们可以再次计算每个模型的准确性,并在定义的世代中重复该循环。这样,只有最佳模型才能在流程结束时生存下来。

为了在Python中实现遗传算法,我们可以使用 TPOT自动机器学习库。TPOT建立在scikit-learn库上,可用于回归或分类任务。

以下代码片段显示了使用遗传算法确定的培训报告和最佳参数。

机器学习中超参数优化的方法是什么  

我们的随机森林遗传算法优化模型的整体准确性如下所示。

机器学习中超参数优化的方法是什么  

人工神经网络(ANN)调整

使用KerasClassifier包装器,可以像使用scikit-learn机器学习模型时一样,对深度学习模型应用网格搜索和随机搜索。在以下示例中,我们将尝试优化一些ANN参数,例如:在每个层中使用多少个神经元,以及使用哪个激活函数和优化器。此处提供了更多深度学习超参数优化的示例 。

机器学习中超参数优化的方法是什么  

使用我们的人工神经网络(ANN)评分的总体准确性可以在下面看到。

机器学习中超参数优化的方法是什么  

评价

现在,我们可以比较在此给定练习中所有不同优化技术的执行情况。总体而言,随机搜索和进化算法的效果最佳。

机器学习中超参数优化的方法是什么  

获得的结果高度依赖于所选的网格空间和所使用的数据集。因此,在不同情况下,不同的优化技术将比其他技术表现更好。

感谢各位的阅读,以上就是“机器学习中超参数优化的方法是什么”的内容了,经过本文的学习后,相信大家对机器学习中超参数优化的方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节
推荐阅读:
  1. haproxy参数优化
  2. MySQL中怎么配置参数优化

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

机器学习
  • 上一篇新闻:
    python numexpr怎么使用
  • 下一篇新闻:
    Golang函数式选项模式怎么实现

猜你喜欢

  • 为什么要在C++中使用notify_all
  • C++中notify_all的正确用法
  • 如何优化C++中的notify_all使用
  • C++ notify_all能提高性能吗
  • 在C++中notify_all的常见问题
  • C++学习:notify_all的入门指南
  • C++并发编程中notify_all介绍
  • C++ notify_all如何解决死锁
  • notify_all在C++11中的变化
  • C++ httpclient如何发送请求
最新资讯
  • LAMP环境MySQL索引优化方法
  • LAMP服务器资源监控与管理技巧
  • LAMP环境PHP版本升级注意事项
  • Apache在LAMP中的角色与性能考量
  • LAMP架构适合哪些类型网站
  • Linux中LAMP配置最佳实践分享
  • LAMP与LEMP,Linux服务器如何选择
  • LAMP环境如何保障网站安全
  • Linux下LAMP环境搭建难点解析
  • LAMP架构如何优化Linux服务器性能
相关推荐
  • 算法模型自动超参数优化方法教程
  • Tomcat调优和JVM参数优化方法是什么
  • 机器学习中的DBSCAN是什么
  • 机器学习是什么
  • 机器学习中的数学怎么掌握
  • Javascript中机器学习指的是什么
  • 机器学习中求协方差矩阵的方法是什么
  • Spark MLlib机器学习是什么
  • Python中的五个超有用函数是什么
  • MySQL中超键、主键及候选键的区别是什么

相关标签

机器学习算法 机器学习库 c++ python javascript java php 人工智能 互联网 spark centos 大数据 hadoop gr pandas wt 数据分析 反映 avascript 全栈
AI

天下网标王南京网站页面优化吉林做网站优化增城网站seo优化江门选择免费网站优化网站优化公司哪家好淮南专业网站优化怎么做如何自己做网站优化深圳外贸网站关键词优化哪家好企业网站优化的十点建议龙城专业外贸网站优化品牌网站内容优化问题茂名整站优化网站永州网站建设优化如何解决网站优化范县网站优化临西县网站优化优化网站常用命令汉阳网站优化网站内容优化注意什么恩施网站用户体验优化福州福清网站优化与推广许昌知名网站优化公司哪家好江苏网站关键词优化批发谷歌网站优化价格费用嘉兴网站优化真的有用吗巩义怎么做网站优化哈尔滨网站优化搜索日喀则网站搜索优化大王网站seo优化推广广东湖南网站优化推广香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化