微软开源分布式高性能GB框架LightGBM安装使用

简介: LightGBM(Light Gradient Boosting Machine)是一个基于决策树算法的快速的、分布式的、高性能 gradient boosting(GBDT、GBRT、GBM 或 MART)框架,可被用于排行、分类以及其他许多机器学习任务中。

LightGBM(Light Gradient Boosting Machine)是一个基于决策树算法的快速的、分布式的、高性能 gradient boosting(GBDT、GBRT、GBM 或 MART)框架,可被用于排行、分类以及其他许多机器学习任务中。
开源项目地址: https://github.com/Microsoft/LightGBM

开源|LightGBM:三天内收获GitHub 1000+ Star,表现超越已有boosting工具。

LightGBM

LightGBM 是一个梯度 boosting 框架,使用基于学习算法的决策树。它可以说是分布式的,高效的,它有以下优势:
更快的训练效率
低内存使用
更好的准确率
支持并行学习
可处理大规模数据

安装指南

我的环境:Windows 7 64位,VS2015

克隆代码:打开cmd,切换到目标目录,执行:git clone --recursive https://github.com/Microsoft/LightGBM

打开文件夹,双击打开项目文件:


会提示更新c++编辑器和库,点击“OK”按钮;


编译Exe文件:

编译选项选择Release和x64,然后按下“Ctrl+Shift+B”开始编译。


编译Dll文件:打开项目菜单》属性, 如下图:

先在左侧列表中选择“Configuration Properties(配置属性)”》“General(常规)”,

上面配置项选择“DLL”,“x64”,然后“Configuration Type”选择“Dynamic Library(.dll)”,

然后按下“Ctrl+Shift+B”开始编译。


编译成功会在对应目录下生成文件:



测试示例

这里只演示一下使用:lightgbm.exe

将编译好的“lightgbm.exe”复制到示例目录下,如下图:


打开cmd切换到此目录,执行:lightgbm.exe config=train.conf,执行完成会输出结果到“LightGBM_model.txt”文件;

部分内容如下:

gbdt
num_class=1
label_index=0
max_feature_idx=27
objective=regression
sigmoid=-1
feature_names=Column_0 Column_1 Column_2 Column_3 Column_4 Column_5 Column_6 Column_7 Column_8 Column_9 Column_10 Column_11 Column_12 Column_13 Column_14 Column_15 Column_16 Column_17 Column_18 Column_19 Column_20 Column_21 Column_22 Column_23 Column_24 Column_25 Column_26 Column_27

Tree=0
num_leaves=31
split_feature=25 25 26 27 25 5 26 27 22 24 22 27 9 5 5 13 27 0 25 22 27 25 25 5 24 21 9 25 22 21
split_gain=65.198013848544861 45.179995152712536 30.347240885969995 26.081035085622261 11.600168338441563 10.657307966796793 10.544095742084323 9.1446947209126392 6.7573456045035982 14.376367511926105 6.6023242999499701 6.5504187016683062 6.0135133133566399 5.9944091901838306 3.7912550796095275 3.4884765273278759 3.4765456650701907 3.4436711307954582 3.3321858864027547 3.2541750349459306 3.027509867069341 2.7035684528927959 2.5714216710597384 2.4838189319769981 2.418657234051885 2.3402047437905509 2.2854770258980821 2.2121276140393746 2.6399203888605172 2.0424163570685323
threshold=1.0895000000000001 0.59250000000000003 0.77449999999999997 0.90450000000000008 1.5645 0.85650000000000004 0.87150000000000016 0.79649999999999999 1.0605 1.0434999999999999 1.0105 1.0834999999999999 1.0365 0.98049999999999993 1.1225000000000001 0.93850000000000011 0.84050000000000002 1.0265 0.90349999999999997 0.78649999999999998 1.0105 0.73750000000000004 0.98449999999999993 1.2184999999999999 0.71649999999999991 0.99950000000000006 0.9265000000000001 2.2425000000000002 1.0445 0.95150000000000001
执行: lightgbm.exe config=predict.conf,执行完成会输出结果到“ LightGBM_predict_result.txt ”文件;

部分内容如下:

0.7270434307654845
0.46481559465577338
0.13266028702873467
0.50487794434589472
0.23159372452464369
0.14244406024081727
0.26753302245762478
0.35356472040291248
0.76014048033470971
0.44857788065386428
0.54179640036809495
0.7420258615039983
0.79585985850784491
0.75890569104497763
0.39159044991046305

小结

本人这方面是小白一个,什么都不懂,只能演示这么多了!

更多请参考:开源项目地址: https://github.com/Microsoft/LightGBM

下一篇:微软开源分布式高性能GB框架LightGBM安装使用——Python

2017-04-12更新

有小伙伴评论“打开cmd切换到此目录,执行:lightgbm.exe config=train.conf会显示lightgbm.exe不是内部或外部命令也不是可运行的程序或批处理文件”;

注意:我的示例目录是:D:\LightGBM\LightGBM\examples\regression,我是将编译好的“lightgbm.exe”复制到了这个目录下,而且打开CMD后你需要通过“cd”命令切换到示例目录,不然就会遇到他的问题,如下图:


======================文档信息======================

版权声明:非商用自由转载-保持署名-注明出处

署名(BY) :testcs_dn(微wx笑)

文章出处:[无知人生,记录点滴](http://blog.csdn.net/testcs_dn)

目录
相关文章
|
12天前
|
消息中间件 监控 数据可视化
Apache Airflow 开源最顶级的分布式工作流平台
Apache Airflow 是一个用于创作、调度和监控工作流的平台,通过将工作流定义为代码,实现更好的可维护性和协作性。Airflow 使用有向无环图(DAG)定义任务,支持动态生成、扩展和优雅的管道设计。其丰富的命令行工具和用户界面使得任务管理和监控更加便捷。适用于静态和缓慢变化的工作流,常用于数据处理。
Apache Airflow 开源最顶级的分布式工作流平台
|
17天前
|
机器学习/深度学习 自然语言处理 并行计算
DeepSpeed分布式训练框架深度学习指南
【11月更文挑战第6天】随着深度学习模型规模的日益增大,训练这些模型所需的计算资源和时间成本也随之增加。传统的单机训练方式已难以应对大规模模型的训练需求。
62 3
|
21天前
|
机器学习/深度学习 并行计算 Java
谈谈分布式训练框架DeepSpeed与Megatron
【11月更文挑战第3天】随着深度学习技术的不断发展,大规模模型的训练需求日益增长。为了应对这种需求,分布式训练框架应运而生,其中DeepSpeed和Megatron是两个备受瞩目的框架。本文将深入探讨这两个框架的背景、业务场景、优缺点、主要功能及底层实现逻辑,并提供一个基于Java语言的简单demo例子,帮助读者更好地理解这些技术。
43 2
|
1月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
47 1
|
1月前
|
NoSQL Java Redis
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
Redis分布式锁在高并发场景下是重要的技术手段,但其实现过程中常遇到五大深坑:**原子性问题**、**连接耗尽问题**、**锁过期问题**、**锁失效问题**以及**锁分段问题**。这些问题不仅影响系统的稳定性和性能,还可能导致数据不一致。尼恩在实际项目中总结了这些坑,并提供了详细的解决方案,包括使用Lua脚本保证原子性、设置合理的锁过期时间和使用看门狗机制、以及通过锁分段提升性能。这些经验和技巧对面试和实际开发都有很大帮助,值得深入学习和实践。
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
|
3月前
|
NoSQL Redis
基于Redis的高可用分布式锁——RedLock
这篇文章介绍了基于Redis的高可用分布式锁RedLock的概念、工作流程、获取和释放锁的方法,以及RedLock相比单机锁在高可用性上的优势,同时指出了其在某些特殊场景下的不足,并提到了ZooKeeper作为另一种实现分布式锁的方案。
112 2
基于Redis的高可用分布式锁——RedLock
|
3月前
|
缓存 NoSQL Java
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】
这篇文章是关于如何在SpringBoot应用中整合Redis并处理分布式场景下的缓存问题,包括缓存穿透、缓存雪崩和缓存击穿。文章详细讨论了在分布式情况下如何添加分布式锁来解决缓存击穿问题,提供了加锁和解锁的实现过程,并展示了使用JMeter进行压力测试来验证锁机制有效性的方法。
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】
|
10天前
|
NoSQL Redis
Redis分布式锁如何实现 ?
Redis分布式锁通过SETNX指令实现,确保仅在键不存在时设置值。此机制用于控制多个线程对共享资源的访问,避免并发冲突。然而,实际应用中需解决死锁、锁超时、归一化、可重入及阻塞等问题,以确保系统的稳定性和可靠性。解决方案包括设置锁超时、引入Watch Dog机制、使用ThreadLocal绑定加解锁操作、实现计数器支持可重入锁以及采用自旋锁思想处理阻塞请求。
43 16
|
1月前
|
缓存 NoSQL Java
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
59 3
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
|
1月前
|
NoSQL Redis 数据库
计数器 分布式锁 redis实现
【10月更文挑战第5天】
48 1

热门文章

最新文章