python svm超参数_自动化机器学习(一)超参数自动优化

01

技术介绍

自动化机器学习就是能够自动建立机器学习模型的方法,其主要包含三个方面:方面一,超参数优化;方面二,自动特征工程与机器学习算法自动选择;方面三,神经网络结构搜索。本文侧重于方面一,如何对超参数进行自动优化。

在机器学习中,模型本身的参数是可以通过训练数据来获取的,这些参数属于算法的普通参数,通过数据训练获得算法合适的参数,构建强大的模型本身就是机器学习的核心目标。但是机器学习算法本身还存在超参数,超参数就是那些需要科学家手动设置的参数,如SVM的核函数,Lasso的alpha,决策树的最大深度与分支条件,随机森林的子采样率和决策树类型等等等等。如何对这些超参数进行自动优化,而非手动调节正是自动化机器学习的第一步。在这方面一般而言我们是将算法本身视作一个特殊的非凸函数,然后将超参数作为输入,来进行非凸函数优化。而对于非凸函数优化就属于比较成熟的研究领域了。

目前对于超参数优化常用的优化方法有四:

(1)随机搜索

(2)遗传算法或者粒子群算法等遗传学派方法

(3)TPE树搜索

(4)贝叶斯优化等元学习方法。

前两类方法,随即搜索和遗传学派的效果都不是特别适用于超参数优化,主要是性能比较差,时间较长。其中遗传学派效果稍好一些,但是依旧表现一般。如果想要在Python中使用遗传学派进行超参数搜索,则需要借助deap库。TPE的主要实现则是hyperopt,贝叶斯优化的则需要借助bayesian-optimization来使用。本文主要讲的就是使用hyperopt与bayesian-optimization来进行自动化机器学习中的超参数优化。

核心技术栈

  • scikit-learn

  • hyperopt

  • bayesian-optimization

  • pandas

项目选择

02

01

数据

这里我们的数据集使用的是

该数据的下载可以前往:(http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv)

该数据为UCI的红酒质量数据集,标签为分数(整数),因此既可可用于回归,也可用于分类。

02

基础模型

由于我们主要做的是超参数优化,因为我们就需要选择一个比较适合的模型来作为基础模型,线性模型或许比较简单,但是性能太差。因为我们这里直接选择lightgbm作为基础模型,其不仅拥有顶尖的性能和许多是和演示的超参数,同时相对于xgboost的高速度也是我们选择他的一个重要原因。

03

Hyperopt

Hyperopt:是python中的一个用于"分布式异步算法组态/超参数优化"的类库。使用它我们可以摆脱繁杂的超参数优化过程,自动获取最佳的超参数。广泛意义上,可以将带有超参数的模型看作是一个必然的非凸函数,因此hyperopt几乎可以稳定的获取比手工更加合理的调参结果。尤其对于调参比较复杂的模型而言,其更是能以远快于人工调参的速度同样获得远远超过人工调参的最终性能。

目前

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值