lightgbm

决策树是如何选择特征和分裂点?

冷暖自知 提交于 2021-01-09 10:13:48
©PaperWeekly 原创 · 作者|贲忠奇 单位|便利蜂算法工程师 研究方向|推荐算法、反作弊 缘起 在解决回归和分类问题的时候,一般会使用 Random Forest、GBDT、XGBoost、LightGBM 等算法,这类算法因为性能好,被业界广泛采用。突然想到树类型的算法都需要明白一个基本问题,树是如何选择特征和分裂点的?其根本要追溯到决策树的种类,每种是如何划分特征和分裂点,以及如何剪枝的。 决策树分为三类:ID3、C4.5、CART。提出时间却是 1984 年提出 CART,1986年提出的 ID3,1993 年提出的 C4.5。在介绍决策树之前需要了解一些信息论的知识,信息、熵、条件熵、信息增益。决策树中的 ID3 和 C4.5 与信息论息息相关。 信息论基础 信息是杂乱无章数据的一种度量方式。在分类问题中,如果待分类的事物可以划分在多个分类中,那么某个分类 的信息定义为: 其中, 是某个分类的信息; 是选择该分类的概率。 熵是信息的期望,也就是计算所有分类包含信息的期望值: 其中,H(Y) 表示分类数据集的熵。 条件熵是在特征 X 给定条件下,类别 Y 的条件概率分布的熵对特征 X 的数学期望。 其中, 表示在特征 X 下的条件熵; 表示特征下 具体特征值的条件熵; 表示 x 和 y 的联合概率分布。 在划分数据集之前之后信息发生的变化叫做信息增益

华为云·垃圾分类亚军方案分享

跟風遠走 提交于 2021-01-07 23:44:58
导语 结束比赛有几天了,这几天一直在处理前段时间堆积的工作,今天得空对自己的方案进行梳理总结。今年7月多结束魔镜杯后,将之前的内容整理了一下,刚好看到华为垃圾分类比赛,由于我的工作内容还是偏图像,所以就想玩玩,有幸拿了一个亚军。 这次比赛是基于华为云的modelArts平台,免费的gpu硬件环境,全新的结果提交验证方法。感谢组织方华为云,喜欢打比赛的小伙伴也可以多留意该平台,会不定期举办各种数据类竞赛。这次我们队共有三人:谢赋(老虎)、舒欣(up)和文瑞(一休),大家交流分工合作,才能不断奋力前进。这次分享主要是针对决赛阶段,该阶段要求模型的推理时间不能大于100ms,不能使用融合和TTA。故关于模型融合和TTA技巧,本次不会涉及到,后面还会有图像分类的专题分享。 一 解题思路 拿到数据后,我们首先做了数据分析。统计数据样本分布,尺寸分布,图片形态等,基于分析可以做一些针对性的数据预处理算法,对后期的模型训练会有很大的帮助。 选择好的baseline。需要不断的尝试各种现有的网络结构,进行结果对比,挑选出适合该网络的模型结构,然后基于该模型进行不断的调参,调试出性能较好的参数。 做结果验证,分析badcase。将上述模型在验证集上做结果验证,找出错误样本,分析出错原因,然后针对性的调整网络和数据。 基于新数据和模型,再次进行模型调优 二 数据分析(EDA) 原始共有43个类别

Product feature optimization with constraints

心已入冬 提交于 2021-01-07 04:12:56
问题 I have trained a Lightgbm model on learning to rank dataset. The model predicts relevance score of a sample. So higher the prediction the better it is. Now that the model has learned I would like to find the best values of some features that gives me the highest prediction score. So, lets say I have features u,v,w,x,y,z and the features I would like to optimize over are x,y,z . maximize f(u,v,w,x,y,z) w.r.t features x,y,z where f is a lightgbm model subject to constraints : y = Ax + b z = 4

Product feature optimization with constraints

不羁岁月 提交于 2021-01-07 04:10:21
问题 I have trained a Lightgbm model on learning to rank dataset. The model predicts relevance score of a sample. So higher the prediction the better it is. Now that the model has learned I would like to find the best values of some features that gives me the highest prediction score. So, lets say I have features u,v,w,x,y,z and the features I would like to optimize over are x,y,z . maximize f(u,v,w,x,y,z) w.r.t features x,y,z where f is a lightgbm model subject to constraints : y = Ax + b z = 4

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

徘徊边缘 提交于 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-12-08 10:05:05
数据集: uci下载的某家银行电话营销与是否购买定期存储的数据 。 模拟目标: 知道客户数据 , 预测购买理财产品概率 我认为将电话营销的数据消除只保留基本属性可以模拟实际银行能够获取的数据 。 电话营销数据代表一些对用户决定由影响但是获取难度较大的数据 。 比如说,买房 、 买车 、 小孩上学,这些数据银行不能立刻获得,或者获取成本较高。这里不使用这些数据参与预测。虽然预测准确度会降低,但是更符合实际情况。 然后定期存储是一种产品,可以当做一种理财,如果能对一种进行预测行进实现和验证,那么可以扩展到多种产品的预测 数据情况 , 见下 表 Age 年龄 Job 工作 Marital 婚姻情况 Education 教育情况 Default 违约情况 - no 无违约 yes 有违约 Balance 账户余额 House 是否买房子 - no 无房产 yes 有房子 Loan 贷款 - no 无贷款 yes 有贷款 数据处理 数据清洗常规套路 ( 空值检查,去重,去异常值 ) 由于数据集较好,基本不需要处理,但实现数据很有可能需要清洗,比如说,年龄缺失不能简单补0。 balance处理的尝试 1.balance的分布在较大值较少,需要处理 2.balance不处理 对数据one-hot encoding,对yes,no等2分类用0,1替换 处理之后数据为 使用lightgbm建模

教程丨 一文详尽CatBoost

柔情痞子 提交于 2020-10-26 04:03:00
转载自:Datawhale(ID:Datawhale) 作者:潘华引 本文 13867 字 ,建议阅读 35 分钟 。 本文详尽介绍CatBoost 。 CatBoost CatBoost是俄罗斯的搜索巨头Y andex在2017年开源的机器学习库,也是Boosting族算法的一种,同前面介绍过的XGBoost和LightGBM类似,依然是在GBDT算法框架下的一种改进实现,是一种基于对称决策树(oblivious trees)算法的参数少、支持类别型变量和高准确性的GBDT框架,主要说解决的痛点是高效合理地处理类别型特征,这个从它的名字就可以看得出来,CatBoost是由catgorical和boost组成,另外是处理梯度偏差(Gradient bias)以及预测偏移(Prediction shift)问题,提高算法的准确性和泛化能力。 集成学习 CatBoost主要有以下五个特性: 无需调参即可获得较高的模型质量,采用默认参数就可以获得非常好的结果,减少在调参上面花的时间; 支持类别型变量,无需对非数值型特征进行预处理; 快速、可扩展的GPU版本,可以用基于GPU的梯度提升算法实现来训练你的模型,支持多卡并行; 提高准确性,提出一种全新的梯度提升机制来构建模型以减少过拟合; 快速预测,即便应对延时非常苛刻的任务也能够快速高效部署模型。

Catboost 一个超级简单实用的boost算法

心已入冬 提交于 2020-10-06 06:43:29
今天笔者来介绍一个超级简单并且又极其实用的boosting算法包Catboost,据开发者所说这一boosting算法是超越Lightgbm和XGBoost的又一个神器。 catboost 简介 在笔者看来catboost有一下三个的优点: 它自动采用特殊的方式处理 类别型特征(categorical features) 。首先对categorical features做一些统计,计算某个类别特征(category)出现的频率,之后加上超参数,生成新的数值型特征(numerical features)。这也是我在这里介绍这个算法最大的motivtion,有了catboost,再也 不用手动处理类别型特征了。 catboost还使用了 组合类别特征 ,可以利用到特征之间的联系,这极大的 丰富了特征维度 。 catboost的基模型采用的是 对称树 ,同时计算leaf-value方式和传统的boosting算法也不一样,传统的boosting算法计算的是平均数,而catboost在这方面做了优化采用了其他的算法,这些改进都能 防止模型过拟合 。 catboost 实战 这里笔者采用的是之前参加一个CTR点击率预估的数据集,首先通过pandas读入数据。 from catboost import CatBoostClassifier import pandas as pd from