AutoML领域的一把利器---HyperGBM

AutoML领域的一把利器—HyperGBM


前言

之前因为工作上的需求,需要做一个多分类模型来处理一个网站上的用户多分类问题,无奈自己当时对这个领域了解不多,不过也没办法,工作来了就得做,所以就一步步的开始从数据预处理,特征分析,筛选,模型选择,模型调参优化进行尝试,好在最终也算是完成了工作(一个字,累啊)。现在回过头来看一下,是否当初可以有更好的解决方案呢?或者说有没有一个高效的autoML框架可以帮助我完成这些工作呢?接下来,想介绍这样一款满足我以上需求的开源autoML框架—HyperGBM


一、何为AutoML?

简单来说,就是将机器学习应用于现实问题的端到端流程自动化的过程,其产生的主要原因就是因为机器学习的应用需要大量的人工干预,这些人工干预表现在:特征分析、模型选择、参数调节等机器学习的各个方面。AutoML视图将这些与特征、模型、优化、评价有关的重要步骤进行自动化地学习,使得机器学习模型无需人工干预即可被应用。

ps:关于autoML有很多优秀的paper,这里推荐一篇个人比较喜欢的供大家学习参考
Automated Machine Learning Methods, Systems, Challenges.pdf

二、如何使用HyperGBM

本次用例数据来源于kaggle,kaggle上面每个比赛都有相当多的专业人士参与,你除了可以在kaggle上验证自己的一些技术和想法,同时你也可以学习到很多新的解题方法(个人强烈推荐的ML学习平台)

1.引入库

import pandas as pd
from hypergbm import make_experiment
from hypernets.searchers import EvolutionSearcher
from MyGeneralSearchSpaceGenerator import MyGeneralSearchSpaceGenerator

2.读入数据

train_data =pd.read_csv(r"./../resource/train.csv",index_col=0)
test_data = pd.read_csv(r"./../resource/test.csv",index_col=0)

3.初始化make_experiment

reward_metric = 'logloss' ##此次比赛的评估方法为Logloss
search_space = MyGeneralSearchSpaceGenerator() ##自定义的搜索空间
rs = EvolutionSearcher(search_space,optimize_direction='min',population_size=100,
					   sample_size=5,candidates_size=5,regularized=True, use_meta_learner=True)##初始化进化搜索算法
exp = make_experiment(train_data,eval_data=None,test_data=test_data,reward_metric=reward_metric,
                      cv=True,n_folds=5,max_trials=300,target='target',searcher=rs,log_level='info')

ps:这里有很多参数,具体可以参考GitHub上的说明文档

4.调用make_experiment

estimator = exp.run()

5.预测结果并提交kaggle

pred_proba = estimator.predict_proba(test_data)
pf = pd.DataFrame(pred_proba)
pf.to_csv("./../resource/hypergbm_out.csv", encoding='utf-8', header=None)

6.训练过程图展示

在这里插入图片描述

7.比赛排名进入TOP10%

在这里插入图片描述

三、写在最后的话

最近一直在学习研究HyperGBM,Hypernets内部实现的逻辑和技术, 这个过程也同时加深了我对ML各个环节技术的深入理解,如果你对autoML/ML/kaggle感兴趣,欢迎大家一起交流,讨论。后面我也会不断的分享一些HyperGBM具体的技术实现的文章。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值