XGB

XGBoost使用篇(未完成)

点点圈 提交于 2021-02-12 04:41:14
1.截止到本文(20191104)sklearn没有集成xgboost算法,需要单独安装xgboost库,然后导入使用 xgboost官网安装说明 Pre-built binary wheel for Python 在源码git页面下载包,然后手动安装。 如何安装包 2.xgboost读取文件的格式? xgboost的数据输入数据格式DMatrix目前支持两种数据格式:LibSVM和CSV libsvm数据格式 xgboost可以从libsvm、csv、numpy array、dataframe、xgboost binary buffer file载入训练数据 读入后,数据存储在DMatrix目标文件中。 3.xgboost模型的训练及预测过程? 第一种形式: xgboost原生接口的实现方法 import xgboost as xgb # read in data dtrain = xgb . DMatrix ( 'demo/data/agaricus.txt.train' ) dtest = xgb . DMatrix ( 'demo/data/agaricus.txt.test' ) # specify parameters via map param = { 'max_depth' : 2 , 'eta' : 1 , 'objective' : 'binary

阿里机器学习算法面经(已offer)

前提是你 提交于 2021-01-11 03:09:05
作者 | Ivyoake 整理 | NewBeeNLP 面试锦囊之 面经分享 系列,持续更新中 可以后台回复" 面试 " 加入交流讨论组 噢 今天上午已收到意向书,岗位算法工程师-机器学习,地点杭州。 一面(简历面 半小时) 当时在过马路时收到了电话,站在人行道上面试了半小时.. 询问基本情况(研究方向及实习) 就实习阶段所做的超分辨率算法工作进行了详细的询问:数据如何生成,从概率的角度解释网络为何能够学到LR和SR的映射关系,如何搭建和训练网络,如何解决模型落地问题 了解到答主在做超分时遇到的问题后,对业界前沿的技术做了相关询问,用了哪些GAN模型,GAN模型的loss函数如何设计,为什么这么设计 询问答主为什么要从深度学习方向转到机器学习方向,以及约定了两天后的详细面试; 二面(视频面 四十分钟) 介绍一个机器学习项目后就项目的pipeline和相关知识点进行了询问 介绍随机森林和GBDT的区别,为什么Bagging降方差,Boosting降偏差 介绍XGB对GBDT的提升,LGB对XGB的提升,以及既然使用了LGB为什么还要使用XGB 介绍stacking的模型融合方式,以及模型融合为什么有效 编程题:找到一个无序数组里面连续的最长整数数组长度。顺带考察了基数排序和快速排序 三面(P9交叉面 一小时) 了解答主的两段实习经历,分别承担怎样的角色,具体做什么

根据标签分布来选择损失函数

徘徊边缘 提交于 2020-12-24 09:34:48
来自 | 知乎 作者丨马东什么 来源丨https://zhuanlan.zhihu.com/p/304462034 编辑丨极市平台 本文仅作学术交流,如有侵权,请联系后台删除。 本文 约2000字 ,建议阅读 5 分钟 本文介绍了损失函数与标签分布的联系。 首先回到经典的面试问题: 为什么线性回归使用mse作为损失函数? 为什么逻辑回归二分类常用二元交叉熵作为损失函数? 熟悉lgb、xgb或者是sklearn中的各类回归模型包括了线性回归,tweedie回归等等应该都比较熟悉,我们在模型的框架之下可以选择不同的损失函数,以lightgbm为例: 针对于回归问题有非常多的备选损失函数,那么这些损失函数什么时候用,为什么? 回到基本面试问题,首先我们需要知道的是, 使用特定损失函数的前提是我们对标签的分布进行了某种假设,在这种假设的前提下通过极大似然法推出所有样本构成的极大似然公式,然后再使用凸优化的方法比如常见的梯度下降法进行求解。 以常见的二分类问题和回归问题为例: 二分类问题的常见假设就是标签服从伯努利分布: 伯努利分布 是一个离散型机率分布。试验成功,随机变量取值为1;试验失败,随机变量取值为0。成功机率为p,失败机率为q =1-p,N次试验后,成功期望为N*p,方差为N*p*(1-p) ,所以伯努利分布又称两点分布。 观察到的数据为D1,D2,D3,...,DN

阿里天池全国社保比赛心得

自闭症网瘾萝莉.ら 提交于 2020-08-19 22:30:43
最近时间都忙于参加阿里天池的全国社会保险大数据应用创新大赛,终于结束,最终全国排名第7,总共是1336只队伍参加,还是很激动进了前10,今天想把一些体悟写一下,希望对后来参加的人有用。这个比赛是完成数据算法模型的开发设计,实现对各类医疗保险基金欺诈违规行为的准确识别,根据给出的数据情况,最开始有两个思路,1.从就诊记录入手,找到可疑的就诊记录,然后拼接到人上 2.直接构造人的可疑程度的行为特征。两者都试过,最终选择了后者,因为题目给出的欺诈标签主要是人的欺诈标签,并没有给出某次就诊行为的欺诈标签。另外,此次的评测指标是F1值,这个非常重要,你要知道你最终排名都是看的这个值。下面我从三个方面讲一下这次比赛的心得。 一、特征 可能没参加比赛前很难理解 特征决定上限 的这个真理,特征特征才是最重要的! 一定要看特征重要度,要不断尝试,有些组合到一起反而降低,有些特征看着不重要,你把他去了 可是结果却会出现下降的情况,因为特征和特征之间是有关系的。 在重要特征做深入处理的收益远大于在次要特征中继续做。 汇总信息有些时候会丢失信息,比如我们最开始将医院数据进行了汇总,计算每个人去一级医院,二级医院,三级医院的个数,反而没有把所有医院的维度扩充好。 观察和了解你的数据很重要。观察数据发现患者同一天在同一个医院有药费,有治疗费分别出现不同的就诊id,包括挂号的费用也是不同的id

XGBoost类库使用小结

无人久伴 提交于 2020-08-19 20:52:34
    在 XGBoost算法原理小结 中,我们讨论了XGBoost的算法原理,这一片我们讨论如何使用XGBoost的Python类库,以及一些重要参数的意义和调参思路。     本文主要参考了 XGBoost的Python文档 和 XGBoost的参数文档 。 1. XGBoost类库概述     XGBoost除了支持Python外,也支持R,Java等语言。本文关注于Python的XGBoost类库,安装使用"pip install xgboost"即可,目前使用的是XGBoost的0.90版本。XGBoost类库除了支持决策树作为弱学习器外,还支持线性分类器,以及带DropOut的决策树DART,不过通常情况下,我们使用默认的决策树弱学习器即可,本文也只会讨论使用默认决策树弱学习器的XGBoost。     XGBoost有2种Python接口风格。一种是XGBoost自带的原生Python API接口,另一种是sklearn风格的API接口,两者的实现是基本一样的,仅仅有细微的API使用的不同,主要体现在参数命名上,以及数据集的初始化上面。 2. XGBoost类库的基本使用方式     完整示例参见我的 Github代码 。 2.1 使用原生Python API接口     XGBoost的类库的2种接口风格,我们先来看看原生Python API接口如何使用。    

XGBoost 重要参数(调参使用)

醉酒当歌 提交于 2020-08-15 04:51:26
XGBoost 重要参数(调参使用) 数据比赛Kaggle,天池中最常见的就是XGBoost和LightGBM。 模型是在数据比赛中尤为重要的,但是实际上,在比赛的过程中,大部分朋友在模型上花的时间却是相对较少的,大家都倾向于将宝贵的时间留在特征提取与模型融合这些方面。在实战中,我们会先做一个baseline的demo,尽可能快尽可能多的挖掘出模型的潜力,以便后期将精力花在特征和模型融合上。这里就需要一些调参功底。 本文从这两种模型的一共百余参数中选取重要的十余个进行探讨研究。并给大家展示快速轻量级的调参方式。当然,有更高一步要求的朋友,还是得戳 LightGBM 和 XGBoost 这两个官方文档链接。 XGBoost 的重要参数 XGBoost的参数一共分为三类: 通用参数 :宏观函数控制。 Booster参数 :控制每一步的booster(tree/regression)。booster参数一般可以调控模型的效果和计算代价。我们所说的调参,很这是大程度上都是在调整booster参数。 学习目标参数 :控制训练目标的表现。我们对于问题的划分主要体现在学习目标参数上。比如我们要做分类还是回归,做二分类还是多分类,这都是目标参数所提供的。 完整参数请戳官方文档 通用参数 booster :我们有两种参数选择, gbtree 和 gblinear

阿里天池全国社保比赛心得

二次信任 提交于 2020-08-11 23:45:34
最近时间都忙于参加阿里天池的全国社会保险大数据应用创新大赛,终于结束,最终全国排名第7,总共是1336只队伍参加,还是很激动进了前10,今天想把一些体悟写一下,希望对后来参加的人有用。这个比赛是完成数据算法模型的开发设计,实现对各类医疗保险基金欺诈违规行为的准确识别,根据给出的数据情况,最开始有两个思路,1.从就诊记录入手,找到可疑的就诊记录,然后拼接到人上 2.直接构造人的可疑程度的行为特征。两者都试过,最终选择了后者,因为题目给出的欺诈标签主要是人的欺诈标签,并没有给出某次就诊行为的欺诈标签。另外,此次的评测指标是F1值,这个非常重要,你要知道你最终排名都是看的这个值。下面我从三个方面讲一下这次比赛的心得。 一、特征 可能没参加比赛前很难理解 特征决定上限 的这个真理,特征特征才是最重要的! 一定要看特征重要度,要不断尝试,有些组合到一起反而降低,有些特征看着不重要,你把他去了 可是结果却会出现下降的情况,因为特征和特征之间是有关系的。 在重要特征做深入处理的收益远大于在次要特征中继续做。 汇总信息有些时候会丢失信息,比如我们最开始将医院数据进行了汇总,计算每个人去一级医院,二级医院,三级医院的个数,反而没有把所有医院的维度扩充好。 观察和了解你的数据很重要。观察数据发现患者同一天在同一个医院有药费,有治疗费分别出现不同的就诊id,包括挂号的费用也是不同的id

阿里天池全国社保比赛心得

坚强是说给别人听的谎言 提交于 2020-08-11 18:10:48
最近时间都忙于参加阿里天池的全国社会保险大数据应用创新大赛,终于结束,最终全国排名第7,总共是1336只队伍参加,还是很激动进了前10,今天想把一些体悟写一下,希望对后来参加的人有用。这个比赛是完成数据算法模型的开发设计,实现对各类医疗保险基金欺诈违规行为的准确识别,根据给出的数据情况,最开始有两个思路,1.从就诊记录入手,找到可疑的就诊记录,然后拼接到人上 2.直接构造人的可疑程度的行为特征。两者都试过,最终选择了后者,因为题目给出的欺诈标签主要是人的欺诈标签,并没有给出某次就诊行为的欺诈标签。另外,此次的评测指标是F1值,这个非常重要,你要知道你最终排名都是看的这个值。下面我从三个方面讲一下这次比赛的心得。 一、特征 可能没参加比赛前很难理解 特征决定上限 的这个真理,特征特征才是最重要的! 一定要看特征重要度,要不断尝试,有些组合到一起反而降低,有些特征看着不重要,你把他去了 可是结果却会出现下降的情况,因为特征和特征之间是有关系的。 在重要特征做深入处理的收益远大于在次要特征中继续做。 汇总信息有些时候会丢失信息,比如我们最开始将医院数据进行了汇总,计算每个人去一级医院,二级医院,三级医院的个数,反而没有把所有医院的维度扩充好。 观察和了解你的数据很重要。观察数据发现患者同一天在同一个医院有药费,有治疗费分别出现不同的就诊id,包括挂号的费用也是不同的id

阿里天池全国社保比赛心得

廉价感情. 提交于 2020-08-11 15:42:38
最近时间都忙于参加阿里天池的全国社会保险大数据应用创新大赛,终于结束,最终全国排名第7,总共是1336只队伍参加,还是很激动进了前10,今天想把一些体悟写一下,希望对后来参加的人有用。这个比赛是完成数据算法模型的开发设计,实现对各类医疗保险基金欺诈违规行为的准确识别,根据给出的数据情况,最开始有两个思路,1.从就诊记录入手,找到可疑的就诊记录,然后拼接到人上 2.直接构造人的可疑程度的行为特征。两者都试过,最终选择了后者,因为题目给出的欺诈标签主要是人的欺诈标签,并没有给出某次就诊行为的欺诈标签。另外,此次的评测指标是F1值,这个非常重要,你要知道你最终排名都是看的这个值。下面我从三个方面讲一下这次比赛的心得。 一、特征 可能没参加比赛前很难理解 特征决定上限 的这个真理,特征特征才是最重要的! 一定要看特征重要度,要不断尝试,有些组合到一起反而降低,有些特征看着不重要,你把他去了 可是结果却会出现下降的情况,因为特征和特征之间是有关系的。 在重要特征做深入处理的收益远大于在次要特征中继续做。 汇总信息有些时候会丢失信息,比如我们最开始将医院数据进行了汇总,计算每个人去一级医院,二级医院,三级医院的个数,反而没有把所有医院的维度扩充好。 观察和了解你的数据很重要。观察数据发现患者同一天在同一个医院有药费,有治疗费分别出现不同的就诊id,包括挂号的费用也是不同的id

一文入门:XGBoost与手推二阶导

≯℡__Kan透↙ 提交于 2020-08-10 05:42:52
作者前言 在2020年还在整理XGB的算法,其实已经有点过时了。。不过,主要是为了学习算法嘛。现在的大数据竞赛,XGB基本上已经全面被LGB模型取代了,这里主要是学习一下Boost算法。之前已经在其他博文中介绍了Adaboost算法和Gradient-boost算法,这篇文章讲解一下XGBoost。 Adaboost和XGBoost无关,但是Gradient-boost与XGBoost有一定关系。 一文搞懂:Adaboost及手推算法案例 一文读懂:GBDT梯度提升 树模型概述 XGB就是Extreme Gradient Boosting极限梯度提升模型。XGB简单的说是 一组分类和回归树(CART) 的组合。跟GBDT和Adaboost都有异曲同工之处。 【CART=classification adn regression trees】 这里对于一个决策树,如何分裂,如何选择最优的分割点,其实就是一个搜索的过程。搜索怎么分裂,才能让目标函数最小。目标函数如下: \(Obj = Loss + \Omega\) \(Obj\) 就是我们要最小化的优化函数, \(Loss\) 就是这个CART模型的预测结果和真实值得损失。 \(\Omega\) 就是这个CART模型的复杂度,类似神经网络中的正则项。 【上面的公式就是一个抽象的概念。我们要知道的是:CART树模型即要求预测尽可能准确