ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

超参数黑盒(Black-box)优化的Python代码示例

2022-08-17 11:35:04  阅读:142  来源: 互联网

标签:box 黑盒 机器 示例 模型 学习 参数 搜索 优化


在机器学习中,超参数是用于控制机器学习模型的学习过程的参数。为了与从数据中学到的机器学习模型参数区分开,所以称其为超参数。超参数的配置决定了机器学习模型的性能,每组独特的超参数集可以对应一个学习后的机器学习模型。对于大多数最先进的机器学习模型,所有可能的超参数组合的集合可能会很大。大多数机器学习模型软件包的默认参数值都经过了一些特别的调整优化,可实现不错的基线性能。这意味着可以直接使用,但这些如果针对特定的情况还是需要找到特定的超参数值,这样才能达到最佳的性能。

许多算法和库都提供了自动化的超参数选择。超参数选择是一种优化的过程,在该过程中目标函数由模型表现表示。优化任务是找到一组让机器学习模型的性能表现得最好的参数。

超参数优化的空间非常丰富,最初也是最简单的优化方式是暴力搜索:通过详尽搜索所有可能的超参数组合来找到最佳的超参数。如果可以详尽地搜索超参数空间,那么肯定可以提供一组最佳超参数组合。但是在计算资源和时间方面,暴力搜索搜索超参数空间通常是不可行的,这是因为超参数搜索属于非凸优化的范畴,寻找全局最优几乎是不可行的,因为它可能会陷入几个次优的“陷阱”之一,也称为局部最小值,这使得算法很难搜索超参数的整个空间。

暴力搜索优化的一个替代方案是黑盒(Black-Box)非凸优化技术。黑盒非凸优化算法可根据某些预定义的度量找到足够最佳的局部最小值(或最大值)的次优解。

Python具有许多这样的工具。比如sklearn中的GridSearchCV就是暴力优化。而IBM开发的RBFopt包则提供了黑盒优化的方法。它的工作原理是使用径向基函数来构建和细化正在优化的函数的代理模型。并且它不需要对被优化函数的形状或行为做任何假设,而且可以被用于优化复杂的模型,如深度神经网络。

本文中将使用Kaggle上公开可用的电信客户流失数据集。数据集可以在Apache 2.0许可证下免费使用,修改和共享。

数据准备

首先,让我们使用pandas读取数据:

  1. df = pd.read_csv("telco_churn.csv")

我们看到数据包含诸如客户ID、性别、身份等字段。

字段“churn”,它对应于客户是否重复购买。值为“No”表示该客户重复购买,值为“Yes”表示该客户停止购买。

这是一个简单的分类模型,以gender、senorcitizen、InternetService、DeviceProtection、MonthlyCharges和TotalCharges字段作为输入,并预测客户是否会流失。所以需要将分类列转换为机器可读的值,因为只有数值类型的值才可以作为输入传入机器学习模型。

 

完整文章:

 

https://avoid.overfit.cn/post/cd167390bfe54da6b4b1edbef01a8f91

标签:box,黑盒,机器,示例,模型,学习,参数,搜索,优化
来源: https://www.cnblogs.com/deephub/p/16594437.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有