lightgbm

How to get the features selected by the RandomizedSearchCV for LGBMClassifier model?

蹲街弑〆低调 提交于 2020-03-23 08:17:49
问题 I'm using the RandomizedSearchCV (sklearn) model selection to find out the best fit for a LightGBM LGBMClassifier model, but I'm facing issues to figure out which features has been selected for that. I can print out the the importance of each one by: lgbm_clf = lgbm.LGBMClassifier(boosting_type='gbdt',.... lgbm_clf.fit(X_train, y_train) importance_type = lgbm_clf.importance_type lgbm_clf.importance_type = "gain" gain = lgbm_clf.feature_importances_ lgbm_clf.importance_type = "split" split =

MAC 上 使用lightgbm遇到image not found 解决办法总结

本小妞迷上赌 提交于 2020-03-08 23:26:11
LightGBM介绍: GBDT (Gradient Boosting Decision Tree) 是机器学习中一个长盛不衰的模型,其主要思想是利用弱分类器(决策树)迭代训练以得到最优模型,该模型具有训练效果好、不易过拟合等优点。GBDT 在工业界应用广泛,通常被用于点击率预测,搜索排序等任务。GBDT 也是各种数据挖掘竞赛的致命武器,据统计 Kaggle 上的比赛有一半以上的冠军方案都是基于 GBDT。 ​ LightGBM (Light Gradient Boosting Machine)是一个实现 GBDT 算法的框架,支持高效率的并行训练,并且具有以下优点: 更快的训练速度 更低的内存消耗 更好的准确率 分布式支持,可以快速处理海量数据 如下图,在 Higgs 数据集上 LightGBM 比 XGBoost 快将近 10 倍,内存占用率大约为 XGBoost 的1/6,并且准确率也有提升 在MAC上实际pip安装过程中会出现下面错误 错误信息 import lightgbm File "/opt/venv3/lib/python3.7/site-packages/lightgbm/__init__.py", line 8, in <module> from .basic import Booster, Dataset File "/opt/venv3/lib

机器学习在马蜂窝酒店聚合中的应用初探

让人想犯罪 __ 提交于 2020-02-28 08:20:50
出门旅行,订酒店是必不可少的一个环节。住得干净、舒心对于每个出门在外的人来说都非常重要。 在线预订酒店让这件事更加方便。当用户在马蜂窝打开一家选中的酒店时,不同供应商提供的预订信息会形成一个聚合列表准确地展示给用户。这样做首先避免同样的信息多次展示给用户影响体验,更重要的是帮助用户进行全网酒店实时比价,快速找到性价比最高的供应商,完成消费决策。 酒店聚合能力的强弱,决定着用户预订酒店时可选价格的「厚度」,进而影响用户个性化、多元化的预订体验。为了使酒店聚合更加实时、准确、高效,现在马蜂窝酒店业务中近 80% 的聚合任务都是由机器自动完成。本文将详细阐述酒店聚合是什么,以及时下热门的机器学习技术在酒店聚合中是如何应用的。 Part.1 应用场景和挑战 1.酒店聚合的应用场景 马蜂窝酒旅平台接入了大量的供应商,不同供应商会提供很多相同的酒店,但对同一酒店的描述可能会存在差异,比如: 酒店聚合要做的,就是将这些来自不同供应商的酒店信息聚合在一起集中展示给用户,为用户提供一站式实时比价预订服务: 下图为马蜂窝对不同供应商的酒店进行聚合后的展示,不同供应商的报价一目了然,用户进行消费决策更加高效、便捷。 2.挑战 (1) 准确性 上文说过,不同供应商对于同一酒店的描述可能存在偏差。如果聚合出现错误,就会导致用户在 App 中看到的酒店不是实际想要预订的: 在上图中,用户在 App

Mac安装lightgbm导入import时报错的解决方案

こ雲淡風輕ζ 提交于 2020-02-27 03:50:44
OSError : dlopen(/Users/user/anaconda3/lib/python3.7/site-packages/lightgbm/lib_lightgbm.so, 6): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib Referenced from: /Users/user/anaconda3/lib/python3.7/site-packages/lightgbm/lib_lightgbm.so Reason: image not found 尝试了 https://stackoverflow.com/questions/29910217/homebrew-installation-on-mac-os-x-failed-to-connect-to-raw-githubusercontent-com 的方法,无效 继续花半小时排坑 https://blog.csdn.net/weixin_32087115/article/details/81489627 的方法,无效 后查阅官方文档—— For macOS users: Starting from version 2.2.1, the library file in distribution wheels is built by the

从结构到性能,一文概述XGBoost、Light GBM和CatBoost的同与不同

ⅰ亾dé卋堺 提交于 2020-02-25 15:48:18
尽管近年来神经网络复兴并大为流行,但是 boosting 算法在训练样本量有限、所需训练时间较短、缺乏调参知识等场景依然有其不可或缺的优势。本文从算法结构差异、每个算法的分类变量时的处理、算法在数据集上的实现等多个方面对 3 种代表性的 boosting 算法 CatBoost、Light GBM 和 XGBoost 进行了对比;虽然本文结论依据于特定的数据集,但通常情况下,XGBoost 都比另外两个算法慢。 最近,我参加了 kaggle 竞赛 WIDS Datathon,并通过使用多种 boosting 算法,最终排名前十。从那时开始,我就对这些算法的内在工作原理非常好奇,包括调参及其优劣势,所以有了这篇文章。尽管最近几年神经网络复兴,并变得流行起来,但我还是更加关注 boosting 算法,因为在训练样本量有限、所需训练时间较短、缺乏调参知识的场景中,它们依然拥有绝对优势。 2014 年 3 月,XGBOOST 最早作为研究项目,由陈天奇提出2017 年 1 月,微软发布首个稳定版 LightGBM2017 年 4 月,俄罗斯顶尖技术公司 Yandex 开源 CatBoost 由于 XGBoost(通常被称为 GBM 杀手)已经在机器学习领域出现了很久,如今有非常多详细论述它的文章,所以本文将重点讨论 CatBoost 和 LGBM,在下文我们将谈到:

机器学习算法之LightGBM

南楼画角 提交于 2020-02-25 13:00:33
这篇文章我们继续学习一下 GBDT 模型的另一个进化版本:LightGBM。LigthGBM是boosting集合模型中的新进成员,由微软提供,它和XGBoost一样是对GBDT的高效实现,原理上它和GBDT及XGBoost类似,都采用损失函数的负梯度作为当前决策树的残差近似值,去拟合新的决策树。 LightGBM在很多方面会比XGBoost表现的更为优秀。它有以下优势: 更快的训练效率 低内存使用 更高的准确率 支持并行化学习 可处理大规模数据 支持直接使用category特征 从下图实验数据可以看出, LightGBM比XGBoost快将近10倍,内存占用率大约为XGBoost的1/6,并且准确率也有提升。 看完这些惊人的实验结果以后,对下面两个问题产生了疑惑:XGBoost已经十分完美了,为什么还要追求速度更快、内存使用更小的模型?对GBDT算法进行改进和提升的技术细节是什么? 提出LightGBM的动机 常用的机器学习算法,例如神经网络等算法,都可以以mini-batch的方式训练,训练数据的大小不会受到内存限制。而GBDT在每一次迭代的时候,都需要遍历整个训练数据多次。如果把整个训练数据装进内存则会限制训练数据的大小;如果不装进内存,反复地读写训练数据又会消耗非常大的时间。尤其面对工业级海量的数据,普通的GBDT算法是不能满足其需求的。

LightGBM介绍及参数调优

倖福魔咒の 提交于 2020-02-06 08:07:18
1、LightGBM简介   LightGBM是一个梯度Boosting框架,使用基于决策树的学习算法。它可以说是分布式的,高效的,有以下优势:   1)更快的训练效率   2)低内存使用   3)更高的准确率   4)支持并行化学习   5)可以处理大规模数据   与常见的机器学习算法对比,速度是非常快的    2、XGboost的缺点   在讨论LightGBM时,不可避免的会提到XGboost,关于XGboost可以参考 此博文   关于XGboost的不足之处主要有:   1)每轮迭代时,都需要遍历整个训练数据多次。如果把整个训练数据装进内存则会限制训练数据的大小;如果不装进内存,反复地读写训练数据又会消耗非常大的时间。   2)预排序方法的时间和空间的消耗都很大 3、LightGBM原理   1)直方图算法   直方图算法的基本思想是先把连续的浮点特征值离散化成kk个整数,同时构造一个宽度为kk的直方图。在遍历数据的时候,根据离散化后的值作为索引在直方图中累积统计量,当遍历一次数据后,直方图累积了需要的统计量,然后根据直方图的离散值,遍历寻找最优的分割点。在XGBoost中需要遍历所有离散化的值,而在这里只要遍历kk个直方图的值。      使用直方图算法有很多优点。首先,最明显就是内存消耗的降低,直方图算法不仅不需要额外存储预排序的结果,而且可以只保存特征离散化后的值。

面试——XGBoost

荒凉一梦 提交于 2020-01-25 21:52:48
文章目录 简单介绍一下XGBoost XGBoost与GBDT有什么不同 XGBoost为什么使用泰勒二阶展开 XGBoost为什么可以并行训练 XGBoost为什么快 XGBoost防止过拟合的方法 XGBoost如何处理缺失值 XGBoost中的一棵树的停止生长条件 RF和GBDT的区别 XGBoost如何处理不平衡数据 比较LR和GBDT,说说什么情景下GBDT不如LR XGBoost中如何对树进行剪枝 XGBoost如何选择最佳分裂点? XGBoost如何评价特征的重要性 XGBooost参数调优的一般步骤 XGBoost模型如果过拟合了怎么解决 为什么XGBoost相比某些模型对缺失值不敏感 XGBoost和LightGBM的区别 简单介绍一下XGBoost 首先需要说一说GBDT,它是一种基于boosting增强策略的加法模型,训练的时候采用前向分布算法进行贪婪的学习,每次迭代都学习一棵CART树来拟合之前 t-1 棵树的预测结果与训练样本真实值的残差。 XGBoost对GBDT进行了一系列优化,比如损失函数进行了二阶泰勒展开、目标函数加入正则项、支持并行和默认缺失值处理等,在可扩展性和训练速度上有了巨大的提升,但其核心思想没有大的变化 XGBoost与GBDT有什么不同 基分类器:XGBoost的基分类器不仅支持CART决策树,还支持线性分类器

LightGBM 训练及调参

一曲冷凌霜 提交于 2020-01-19 23:22:22
LightGBM是微软开源的一个快速的,分布式的,高性能的基于决策树算法的梯度提升算法,对比于XGBoost算法来说准确率在大部分情况下相较无几,但是在收敛速度,内存占用情况下相较于XGBoost来说较为优秀。详细的算法原理可见LightGBM官方文档。 在已经有了训练值和label的情况下可以创建lightgbm进行训练了,这里我是先对数据集进行划分得到了X_train,X_test, y_train, y_test from sklearn . model_selection import train_test_split X_train , X_test , y_train , y_test = train_test_split ( train , target_train , test_size = 0.3 , random_state = 0 ) 然后将X_train在用K-Fold划分进行训练,训练的代码: from sklearn . metrics import r2_score import lightgbm as lgb from lightgbm import LGBMRegressor from sklearn . model_selection import KFold , cross_val_score , GridSearchCV import

Mac安装lightGBM错误 image not found

心不动则不痛 提交于 2020-01-16 16:04:43
pip install lightgbm 使用时直接调用: import lightgbm as lgb 然后在notebook中使用时会报错: Reason: image not found 卸载错误安装 pip uninstall lightgbm 安装cmake依赖 brew install cmake brew install gcc 如果已安装会显示gcc版本。 git clone --recursive https://github.com/Microsoft/LightGBM ; cd LightGBM mkdir build ; cd build 配置环境变量 export CXX=g+±9 CC=gcc-9 上面的gcc版本显示为9的情况。 编译构建 命令行执行: make -j2 2为cpu核数。 安装LightGBM 进入下载的LightGBM目录下面的Python-package目录下,能找到setup.py文件 cd …/python-package python setup.py install (特别注意:不要用pip install lightgbm) 来源: CSDN 作者: tunghao 链接: https://blog.csdn.net/tunghao/article/details/104000645