[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-lightgbm-org--LightGBM":3,"tool-lightgbm-org--LightGBM":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",147882,2,"2026-04-09T11:32:47",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108111,"2026-04-08T11:23:26",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":74,"owner_location":74,"owner_email":74,"owner_twitter":74,"owner_website":74,"owner_url":75,"languages":76,"stars":115,"forks":116,"last_commit_at":117,"license":118,"difficulty_score":119,"env_os":120,"env_gpu":121,"env_ram":122,"env_deps":123,"category_tags":130,"github_topics":134,"view_count":149,"oss_zip_url":74,"oss_zip_packed_at":74,"status":17,"created_at":150,"updated_at":151,"faqs":152,"releases":181},5888,"lightgbm-org\u002FLightGBM","LightGBM","A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.","LightGBM 是一款基于决策树算法的高效梯度提升框架，专为排序、分类及各类机器学习任务打造。面对海量数据训练时传统模型速度慢、内存占用高的问题，LightGBM 通过独特的直方图算法和叶子生长策略，显著提升了训练效率并降低了资源消耗，同时保持了卓越的预测精度。\n\n它特别适合数据科学家、算法工程师及研究人员使用，尤其是在处理大规模数据集或需要快速迭代模型的场景中。无论是构建推荐系统、进行金融风控建模，还是解决复杂的分类难题，LightGBM 都能提供强有力的支持。\n\n其核心技术亮点在于支持并行计算、分布式训练以及 GPU 加速，能够轻松应对亿级样本量的挑战。此外，它还提供了 Python、R、C++ 等多种语言的接口，生态完善且易于集成。作为一个由原微软团队维护并现已移交至开源社区管理的成熟项目，LightGBM 凭借其“更快、更省、更准”的特性，已成为工业界和学术界广泛信赖的机器学习工具之一。","\u003Cimg src=https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002Flogo\u002FLightGBM_logo_black_text.svg width=300 \u002F>\n\n> [!NOTE]\n> This project moved from `Microsoft\u002FLightGBM` to `lightgbm-org\u002FLightGBM` in March 2026.\n> This repository is still the official LightGBM source code, managed by the same maintainers (including the creator of LightGBM).\n> For details, see https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fissues\u002F7187\n\nLight Gradient Boosting Machine\n===============================\n\n[![C++ GitHub Actions Build Status](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fcpp.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fcpp.yml)\n[![Python-package GitHub Actions Build Status](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fpython_package.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fpython_package.yml)\n[![R-package GitHub Actions Build Status](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fr_package.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fr_package.yml)\n[![CUDA Version GitHub Actions Build Status](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fcuda.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fcuda.yml)\n[![SWIG Wrapper GitHub Actions Build Status](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fswig.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fswig.yml)\n[![Static Analysis GitHub Actions Build Status](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fstatic_analysis.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fstatic_analysis.yml)\n[![Appveyor Build Status](https:\u002F\u002Fci.appveyor.com\u002Fapi\u002Fprojects\u002Fstatus\u002F1ys5ot401m0fep6l\u002Fbranch\u002Fmaster?svg=true)](https:\u002F\u002Fci.appveyor.com\u002Fproject\u002Fguolinke\u002Flightgbm\u002Fbranch\u002Fmaster)\n[![Documentation Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flightgbm-org_LightGBM_readme_6bf48b3e9a6d.png)](https:\u002F\u002Flightgbm.readthedocs.io\u002F)\n[![Link checks](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Flychee.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Flychee.yml)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Flightgbm-org\u002Flightgbm.svg)](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002FLICENSE)\n[![EffVer Versioning](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion_scheme-EffVer-0097a7)](https:\u002F\u002Fjacobtomlinson.dev\u002Feffver)\n[![StackOverflow questions](https:\u002F\u002Fimg.shields.io\u002Fstackexchange\u002Fstackoverflow\u002Ft\u002Flightgbm?logo=stackoverflow&logoColor=white&label=StackOverflow%20questions)](https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002Ftagged\u002Flightgbm?sort=votes)\n[![Python Versions](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Flightgbm.svg?logo=python&logoColor=white)](https:\u002F\u002Fpypi.org\u002Fproject\u002Flightgbm)\n[![PyPI Version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Flightgbm.svg?logo=pypi&logoColor=white)](https:\u002F\u002Fpypi.org\u002Fproject\u002Flightgbm)\n[![conda Version](https:\u002F\u002Fimg.shields.io\u002Fconda\u002Fvn\u002Fconda-forge\u002Flightgbm?logo=conda-forge&logoColor=white&label=conda)](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Flightgbm)\n[![CRAN Version](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flightgbm-org_LightGBM_readme_e51e1c713431.png)](https:\u002F\u002Fcran.r-project.org\u002Fpackage=lightgbm)\n[![NuGet Version](https:\u002F\u002Fimg.shields.io\u002Fnuget\u002Fv\u002Flightgbm?logo=nuget&logoColor=white)](https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FLightGBM)\n[![Winget Version](https:\u002F\u002Fimg.shields.io\u002Fwinget\u002Fv\u002FMicrosoft.LightGBM)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fwinget-pkgs\u002Ftree\u002Fmaster\u002Fmanifests\u002Fm\u002FMicrosoft\u002FLightGBM)\n\nLightGBM is a gradient boosting framework that uses tree based learning algorithms. It is designed to be distributed and efficient with the following advantages:\n\n- Faster training speed and higher efficiency.\n- Lower memory usage.\n- Better accuracy.\n- Support of parallel, distributed, and GPU learning.\n- Capable of handling large-scale data.\n\nFor further details, please refer to [Features](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002FFeatures.rst).\n\nBenefiting from these advantages, LightGBM is being widely-used in many [winning solutions](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fexamples\u002FREADME.md#machine-learning-challenge-winning-solutions) of machine learning competitions.\n\n[Comparison experiments](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002FExperiments.rst#comparison-experiment) on public datasets show that LightGBM can outperform existing boosting frameworks on both efficiency and accuracy, with significantly lower memory consumption. What's more, [distributed learning experiments](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002FExperiments.rst#parallel-experiment) show that LightGBM can achieve a linear speed-up by using multiple machines for training in specific settings.\n\nGet Started and Documentation\n-----------------------------\n\nOur primary documentation is at https:\u002F\u002Flightgbm.readthedocs.io\u002F and is generated from this repository. If you are new to LightGBM, follow [the installation instructions](https:\u002F\u002Flightgbm.readthedocs.io\u002Fen\u002Flatest\u002FInstallation-Guide.html) on that site.\n\nNext you may want to read:\n\n- [**Examples**](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Ftree\u002Fmaster\u002Fexamples) showing command line usage of common tasks.\n- [**Features**](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002FFeatures.rst) and algorithms supported by LightGBM.\n- [**Parameters**](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002FParameters.rst) is an exhaustive list of customization you can make.\n- [**Distributed Learning**](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002FParallel-Learning-Guide.rst) and [**GPU Learning**](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002FGPU-Tutorial.rst) can speed up computation.\n- [**FLAML**](https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fproject\u002Ffast-and-lightweight-automl-for-large-scale-data\u002Farticles\u002Fflaml-a-fast-and-lightweight-automl-library\u002F) provides automated tuning for LightGBM ([code examples](https:\u002F\u002Fmicrosoft.github.io\u002FFLAML\u002Fdocs\u002FExamples\u002FAutoML-for-LightGBM\u002F)).\n- [**Optuna Hyperparameter Tuner**](https:\u002F\u002Fmedium.com\u002Foptuna\u002Flightgbm-tuner-new-optuna-integration-for-hyperparameter-optimization-8b7095e99258) provides automated tuning for LightGBM hyperparameters ([code examples](https:\u002F\u002Fgithub.com\u002Foptuna\u002Foptuna-examples\u002Fblob\u002Fmain\u002Flightgbm\u002Flightgbm_tuner_simple.py)).\n- [**Understanding LightGBM Parameters (and How to Tune Them using Neptune)**](https:\u002F\u002Fneptune.ai\u002Fblog\u002Flightgbm-parameters-guide).\n\nDocumentation for contributors:\n\n- [**How we update readthedocs.io**](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002FREADME.rst).\n- Check out the [**Development Guide**](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002FDevelopment-Guide.rst).\n\nNews\n----\n\nPlease refer to changelogs at [GitHub releases](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Freleases) page.\n\nExternal (Unofficial) Repositories\n----------------------------------\n\nProjects listed here offer alternative ways to use LightGBM.\nThey are not maintained or officially endorsed by the `LightGBM` development team.\n\nJPMML (Java PMML converter): https:\u002F\u002Fgithub.com\u002Fjpmml\u002Fjpmml-lightgbm\n\nNyoka (Python PMML converter): https:\u002F\u002Fgithub.com\u002FSoftwareAG\u002Fnyoka\n\nTreelite (model compiler for efficient deployment): https:\u002F\u002Fgithub.com\u002Fdmlc\u002Ftreelite\n\nlleaves (LLVM-based model compiler for efficient inference): https:\u002F\u002Fgithub.com\u002Fsiboehm\u002Flleaves\n\nHummingbird (model compiler into tensor computations): https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fhummingbird\n\nGBNet (use `LightGBM` as a [PyTorch Module](https:\u002F\u002Fdocs.pytorch.org\u002Fdocs\u002Fstable\u002Fgenerated\u002Ftorch.nn.Module.html)): https:\u002F\u002Fgithub.com\u002Fmthorrell\u002Fgbnet\n\ncuML Forest Inference Library (GPU-accelerated inference): https:\u002F\u002Fgithub.com\u002Frapidsai\u002Fcuml\n\ndaal4py (Intel CPU-accelerated inference): https:\u002F\u002Fgithub.com\u002Fintel\u002Fscikit-learn-intelex\u002Ftree\u002Fmaster\u002Fdaal4py\n\nm2cgen (model appliers for various languages): https:\u002F\u002Fgithub.com\u002FBayesWitnesses\u002Fm2cgen\n\nleaves (Go model applier): https:\u002F\u002Fgithub.com\u002Fdmitryikh\u002Fleaves\n\nONNXMLTools (ONNX converter): https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\n\nSHAP (model output explainer): https:\u002F\u002Fgithub.com\u002Fslundberg\u002Fshap\n\nShapash (model visualization and interpretation): https:\u002F\u002Fgithub.com\u002FMAIF\u002Fshapash\n\ndtreeviz (decision tree visualization and model interpretation): https:\u002F\u002Fgithub.com\u002Fparrt\u002Fdtreeviz\n\nsupertree (interactive visualization of decision trees): https:\u002F\u002Fgithub.com\u002Fmljar\u002Fsupertree\n\nSynapseML (LightGBM on Spark): https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FSynapseML\n\nKubeflow Fairing (LightGBM on Kubernetes): https:\u002F\u002Fgithub.com\u002Fkubeflow\u002Ffairing\n\nKubeflow Operator (LightGBM on Kubernetes): https:\u002F\u002Fgithub.com\u002Fkubeflow\u002Fxgboost-operator\n\nlightgbm_ray (LightGBM on Ray): https:\u002F\u002Fgithub.com\u002Fray-project\u002Flightgbm_ray\n\nRay (distributed computing framework): https:\u002F\u002Fgithub.com\u002Fray-project\u002Fray\n\nMars (LightGBM on Mars): https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\n\nML.NET (.NET\u002FC#-package): https:\u002F\u002Fgithub.com\u002Fdotnet\u002Fmachinelearning\n\nLightGBM.NET (.NET\u002FC#-package): https:\u002F\u002Fgithub.com\u002Frca22\u002FLightGBM.Net\n\nLightGBM Ruby (Ruby gem): https:\u002F\u002Fgithub.com\u002Fankane\u002Flightgbm-ruby\n\nLightGBM4j (Java high-level binding): https:\u002F\u002Fgithub.com\u002Fmetarank\u002Flightgbm4j\n\nLightGBM4J (JVM interface for LightGBM written in Scala): https:\u002F\u002Fgithub.com\u002Fseek-oss\u002Flightgbm4j\n\nJulia-package: https:\u002F\u002Fgithub.com\u002FIQVIA-ML\u002FLightGBM.jl\n\nlightgbm3 (Rust binding): https:\u002F\u002Fgithub.com\u002FMottl\u002Flightgbm3-rs\n\nMLServer (inference server for LightGBM): https:\u002F\u002Fgithub.com\u002FSeldonIO\u002FMLServer\n\nMLflow (experiment tracking, model monitoring framework): https:\u002F\u002Fgithub.com\u002Fmlflow\u002Fmlflow\n\nFLAML (AutoML library for hyperparameter optimization): https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FFLAML\n\nMLJAR AutoML (AutoML on tabular data): https:\u002F\u002Fgithub.com\u002Fmljar\u002Fmljar-supervised\n\nOptuna (hyperparameter optimization framework): https:\u002F\u002Fgithub.com\u002Foptuna\u002Foptuna\n\nLightGBMLSS (probabilistic modelling with LightGBM): https:\u002F\u002Fgithub.com\u002FStatMixedML\u002FLightGBMLSS\n\nmlforecast (time series forecasting with LightGBM): https:\u002F\u002Fgithub.com\u002FNixtla\u002Fmlforecast\n\nskforecast (time series forecasting with LightGBM): https:\u002F\u002Fgithub.com\u002FJoaquinAmatRodrigo\u002Fskforecast\n\n`{bonsai}` (R `{parsnip}`-compliant interface): https:\u002F\u002Fgithub.com\u002Ftidymodels\u002Fbonsai\n\n`{mlr3extralearners}` (R `{mlr3}`-compliant interface): https:\u002F\u002Fgithub.com\u002Fmlr-org\u002Fmlr3extralearners\n\nlightgbm-transform (feature transformation binding): https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM-transform\n\n`postgresml` (LightGBM training and prediction in SQL, via a Postgres extension): https:\u002F\u002Fgithub.com\u002Fpostgresml\u002Fpostgresml\n\n`pyodide` (run `lightgbm` Python-package in a web browser): https:\u002F\u002Fgithub.com\u002Fpyodide\u002Fpyodide\n\n`vaex-ml` (Python DataFrame library with its own interface to LightGBM): https:\u002F\u002Fgithub.com\u002Fvaexio\u002Fvaex\n\nSupport\n-------\n\n- Ask a question [on Stack Overflow with the `lightgbm` tag](https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002Fask?tags=lightgbm), we monitor this for new questions.\n- Open **bug reports** and **feature requests** on [GitHub issues](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fissues).\n\nHow to Contribute\n-----------------\n\nCheck [CONTRIBUTING](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md) page.\n\nMicrosoft Open Source Code of Conduct\n-------------------------------------\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002F). For more information see the [Code of Conduct FAQ](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002Ffaq\u002F) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nReference Papers\n----------------\n\nYu Shi, Guolin Ke, Zhuoming Chen, Shuxin Zheng, Tie-Yan Liu. \"Quantized Training of Gradient Boosting Decision Trees\" ([link](https:\u002F\u002Fproceedings.neurips.cc\u002Fpaper\u002F2022\u002Fhash\u002F77911ed9e6e864ca1a3d165b2c3cb258-Abstract.html)). Advances in Neural Information Processing Systems 35 (NeurIPS 2022), pp. 18822-18833.\n\nGuolin Ke, Qi Meng, Thomas Finley, Taifeng Wang, Wei Chen, Weidong Ma, Qiwei Ye, Tie-Yan Liu. \"[LightGBM: A Highly Efficient Gradient Boosting Decision Tree](https:\u002F\u002Fproceedings.neurips.cc\u002Fpaper\u002F2017\u002Fhash\u002F6449f44a102fde848669bdd9eb6b76fa-Abstract.html)\". Advances in Neural Information Processing Systems 30 (NIPS 2017), pp. 3149-3157.\n\nQi Meng, Guolin Ke, Taifeng Wang, Wei Chen, Qiwei Ye, Zhi-Ming Ma, Tie-Yan Liu. \"[A Communication-Efficient Parallel Algorithm for Decision Tree](https:\u002F\u002Fproceedings.neurips.cc\u002Fpaper\u002F2016\u002Fhash\u002F10a5ab2db37feedfdeaab192ead4ac0e-Abstract.html)\". Advances in Neural Information Processing Systems 29 (NIPS 2016), pp. 1279-1287.\n\nHuan Zhang, Si Si and Cho-Jui Hsieh. \"[GPU Acceleration for Large-scale Tree Boosting](https:\u002F\u002Farxiv.org\u002Fabs\u002F1706.08359)\". SysML Conference, 2018.\n\nLicense\n-------\n\nThis project is licensed under the terms of the MIT license. See [LICENSE](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002FLICENSE) for additional details.\n","\u003Cimg src=https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002Flogo\u002FLightGBM_logo_black_text.svg width=300 \u002F>\n\n> [!NOTE]\n> 该项目于2026年3月从 `Microsoft\u002FLightGBM` 迁移到 `lightgbm-org\u002FLightGBM`。\n> 该仓库仍然是官方的 LightGBM 源代码库，由相同的维护者团队管理（包括 LightGBM 的创建者）。\n> 更多信息请参阅：https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fissues\u002F7187\n\nLight Gradient Boosting Machine\n===============================\n\n[![C++ GitHub Actions 构建状态](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fcpp.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fcpp.yml)\n[![Python 包 GitHub Actions 构建状态](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fpython_package.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fpython_package.yml)\n[![R 包 GitHub Actions 构建状态](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fr_package.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fr_package.yml)\n[![CUDA 版本 GitHub Actions 构建状态](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fcuda.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fcuda.yml)\n[![SWIG 封装 GitHub Actions 构建状态](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fswig.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fswig.yml)\n[![静态分析 GitHub Actions 构建状态](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fstatic_analysis.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Fstatic_analysis.yml)\n[![Appveyor 构建状态](https:\u002F\u002Fci.appveyor.com\u002Fapi\u002Fprojects\u002Fstatus\u002F1ys5ot401m0fep6l\u002Fbranch\u002Fmaster?svg=true)](https:\u002F\u002Fci.appveyor.com\u002Fproject\u002Fguolinke\u002Flightgbm\u002Fbranch\u002Fmaster)\n[![文档状态](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flightgbm-org_LightGBM_readme_6bf48b3e9a6d.png)](https:\u002F\u002Flightgbm.readthedocs.io\u002F)\n[![链接检查](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Flychee.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Factions\u002Fworkflows\u002Flychee.yml)\n[![许可证](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Flightgbm-org\u002Flightgbm.svg)](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002FLICENSE)\n[![EffVer 版本控制](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion_scheme-EffVer-0097a7)](https:\u002F\u002Fjacobtomlinson.dev\u002Feffver)\n[![StackOverflow 问题](https:\u002F\u002Fimg.shields.io\u002Fstackexchange\u002Fstackoverflow\u002Ft\u002Flightgbm?logo=stackoverflow&logoColor=white&label=StackOverflow%20questions)](https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002Ftagged\u002Flightgbm?sort=votes)\n[![Python 版本](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Flightgbm.svg?logo=python&logoColor=white)](https:\u002F\u002Fpypi.org\u002Fproject\u002Flightgbm)\n[![PyPI 版本](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Flightgbm.svg?logo=pypi&logoColor=white)](https:\u002F\u002Fpypi.org\u002Fproject\u002Flightgbm)\n[![Conda 版本](https:\u002F\u002Fimg.shields.io\u002Fconda\u002Fvn\u002Fconda-forge\u002Flightgbm?logo=conda-forge&logoColor=white&label=conda)](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Flightgbm)\n[![CRAN 版本](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flightgbm-org_LightGBM_readme_e51e1c713431.png)](https:\u002F\u002Fcran.r-project.org\u002Fpackage=lightgbm)\n[![NuGet 版本](https:\u002F\u002Fimg.shields.io\u002Fnuget\u002Fv\u002Flightgbm?logo=nuget&logoColor=white)](https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FLightGBM)\n[![Winget 版本](https:\u002F\u002Fimg.shields.io\u002Fwinget\u002Fv\u002FMicrosoft.LightGBM)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fwinget-pkgs\u002Ftree\u002Fmaster\u002Fmanifests\u002Fm\u002FMicrosoft\u002FLightGBM)\n\nLightGBM 是一个基于树的学习算法的梯度提升框架。它专为分布式和高效计算而设计，具有以下优势：\n\n- 训练速度更快、效率更高。\n- 内存占用更低。\n- 预测精度更高。\n- 支持并行、分布式和 GPU 学习。\n- 能够处理大规模数据。\n\n更多详细信息，请参阅 [特性](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002FFeatures.rst)。\n\n得益于这些优势，LightGBM 广泛应用于许多机器学习竞赛的获奖方案中。\n\n在公开数据集上的[对比实验](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002FExperiments.rst#comparison-experiment)表明，LightGBM 在效率和精度方面均优于现有的提升框架，同时内存消耗显著降低。此外，[分布式学习实验](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002FExperiments.rst#parallel-experiment)显示，在特定场景下，使用多台机器进行训练可以实现线性加速。\n\n开始使用与文档\n-----------------\n\n我们的主要文档位于 https:\u002F\u002Flightgbm.readthedocs.io\u002F，由本仓库生成。如果您是 LightGBM 的新手，请按照该网站上的[安装指南](https:\u002F\u002Flightgbm.readthedocs.io\u002Fen\u002Flatest\u002FInstallation-Guide.html)进行操作。\n\n接下来，您可能希望阅读：\n\n- [**示例**](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Ftree\u002Fmaster\u002Fexamples)，展示常见任务的命令行用法。\n- [**特性**](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002FFeatures.rst) 和 LightGBM 支持的算法。\n- [**参数**](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002FParameters.rst) 是您可以进行自定义的详尽列表。\n- [**分布式学习**](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002FParallel-Learning-Guide.rst) 和 [**GPU 学习**](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002FGPU-Tutorial.rst) 可以加速计算。\n- [**FLAML**](https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fproject\u002Ffast-and-lightweight-automl-for-large-scale-data\u002Farticles\u002Fflaml-a-fast-and-lightweight-automl-library\u002F) 提供 LightGBM 的自动化调参功能（[代码示例](https:\u002F\u002Fmicrosoft.github.io\u002FFLAML\u002Fdocs\u002FExamples\u002FAutoML-for-LightGBM\u002F))。\n- [**Optuna 超参数调优器**](https:\u002F\u002Fmedium.com\u002Foptuna\u002Flightgbm-tuner-new-optuna-integration-for-hyperparameter-optimization-8b7095e99258) 提供 LightGBM 超参数的自动化调优（[代码示例](https:\u002F\u002Fgithub.com\u002Foptuna\u002Foptuna-examples\u002Fblob\u002Fmain\u002Flightgbm\u002Flightgbm_tuner_simple.py))。\n- [**理解 LightGBM 参数及其在 Neptune 中的调优方法**](https:\u002F\u002Fneptune.ai\u002Fblog\u002Flightgbm-parameters-guide)。\n\n面向贡献者的文档：\n\n- [**我们如何更新 readthedocs.io**](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002FREADME.rst)。\n- 请查看 [**开发指南**](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002Fdocs\u002FDevelopment-Guide.rst)。\n\n新闻\n----\n\n请参考 [GitHub 发布页面](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Freleases)中的变更日志。\n\n外部（非官方）仓库\n----------------------------------\n\n此处列出的项目提供了使用 LightGBM 的替代方式。\n它们不由 `LightGBM` 开发团队维护或官方认可。\n\nJPMML（Java PMML 转换器）：https:\u002F\u002Fgithub.com\u002Fjpmml\u002Fjpmml-lightgbm\n\nNyoka（Python PMML 转换器）：https:\u002F\u002Fgithub.com\u002FSoftwareAG\u002Fnyoka\n\nTreelite（用于高效部署的模型编译器）：https:\u002F\u002Fgithub.com\u002Fdmlc\u002Ftreelite\n\nlleaves（基于 LLVM 的模型编译器，用于高效推理）：https:\u002F\u002Fgithub.com\u002Fsiboehm\u002Flleaves\n\nHummingbird（将模型编译为张量计算）：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fhummingbird\n\nGBNet（将 `LightGBM` 用作 [PyTorch Module](https:\u002F\u002Fdocs.pytorch.org\u002Fdocs\u002Fstable\u002Fgenerated\u002Ftorch.nn.Module.html)）：https:\u002F\u002Fgithub.com\u002Fmthorrell\u002Fgbnet\n\ncuML Forest Inference Library（GPU 加速推理）：https:\u002F\u002Fgithub.com\u002Frapidsai\u002Fcuml\n\ndaal4py（Intel CPU 加速推理）：https:\u002F\u002Fgithub.com\u002Fintel\u002Fscikit-learn-intelex\u002Ftree\u002Fmaster\u002Fdaal4py\n\nm2cgen（适用于多种语言的模型应用工具）：https:\u002F\u002Fgithub.com\u002FBayesWitnesses\u002Fm2cgen\n\nleaves（Go 模型应用工具）：https:\u002F\u002Fgithub.com\u002Fdmitryikh\u002Fleaves\n\nONNXMLTools（ONNX 转换器）：https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\n\nSHAP（模型输出解释器）：https:\u002F\u002Fgithub.com\u002Fslundberg\u002Fshap\n\nShapash（模型可视化与解释工具）：https:\u002F\u002Fgithub.com\u002FMAIF\u002Fshapash\n\ndtreeviz（决策树可视化与模型解释工具）：https:\u002F\u002Fgithub.com\u002Fparrt\u002Fdtreeviz\n\nsupertree（交互式决策树可视化工具）：https:\u002F\u002Fgithub.com\u002Fmljar\u002Fsupertree\n\nSynapseML（在 Spark 上运行 LightGBM）：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FSynapseML\n\nKubeflow Fairing（在 Kubernetes 上运行 LightGBM）：https:\u002F\u002Fgithub.com\u002Fkubeflow\u002Ffairing\n\nKubeflow Operator（在 Kubernetes 上运行 LightGBM）：https:\u002F\u002Fgithub.com\u002Fkubeflow\u002Fxgboost-operator\n\nlightgbm_ray（在 Ray 上运行 LightGBM）：https:\u002F\u002Fgithub.com\u002Fray-project\u002Flightgbm_ray\n\nRay（分布式计算框架）：https:\u002F\u002Fgithub.com\u002Fray-project\u002Fray\n\nMars（在 Mars 上运行 LightGBM）：https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\n\nML.NET（.NET\u002FC# 包）：https:\u002F\u002Fgithub.com\u002Fdotnet\u002Fmachinelearning\n\nLightGBM.NET（.NET\u002FC# 包）：https:\u002F\u002Fgithub.com\u002Frca22\u002FLightGBM.Net\n\nLightGBM Ruby（Ruby gem）：https:\u002F\u002Fgithub.com\u002Fankane\u002Flightgbm-ruby\n\nLightGBM4j（Java 高级绑定）：https:\u002F\u002Fgithub.com\u002Fmetarank\u002Flightgbm4j\n\nLightGBM4J（用 Scala 编写的 LightGBM JVM 接口）：https:\u002F\u002Fgithub.com\u002Fseek-oss\u002Flightgbm4j\n\nJulia 包：https:\u002F\u002Fgithub.com\u002FIQVIA-ML\u002FLightGBM.jl\n\nlightgbm3（Rust 绑定）：https:\u002F\u002Fgithub.com\u002FMottl\u002Flightgbm3-rs\n\nMLServer（LightGBM 的推理服务器）：https:\u002F\u002Fgithub.com\u002FSeldonIO\u002FMLServer\n\nMLflow（实验跟踪、模型监控框架）：https:\u002F\u002Fgithub.com\u002Fmlflow\u002Fmlflow\n\nFLAML（用于超参数优化的 AutoML 库）：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FFLAML\n\nMLJAR AutoML（面向表格数据的 AutoML）：https:\u002F\u002Fgithub.com\u002Fmljar\u002Fmljar-supervised\n\nOptuna（超参数优化框架）：https:\u002F\u002Fgithub.com\u002Foptuna\u002Foptuna\n\nLightGBMLSS（使用 LightGBM 进行概率建模）：https:\u002F\u002Fgithub.com\u002FStatMixedML\u002FLightGBMLSS\n\nmlforecast（使用 LightGBM 进行时间序列预测）：https:\u002F\u002Fgithub.com\u002FNixtla\u002Fmlforecast\n\nskforecast（使用 LightGBM 进行时间序列预测）：https:\u002F\u002Fgithub.com\u002FJoaquinAmatRodrigo\u002Fskforecast\n\n`{bonsai}`（R `{parsnip}` 兼容接口）：https:\u002F\u002Fgithub.com\u002Ftidymodels\u002Fbonsai\n\n`{mlr3extralearners}`（R `{mlr3}` 兼容接口）：https:\u002F\u002Fgithub.com\u002Fmlr-org\u002Fmlr3extralearners\n\nlightgbm-transform（特征转换绑定）：https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM-transform\n\n`postgresml`（通过 Postgres 扩展，在 SQL 中进行 LightGBM 训练和预测）：https:\u002F\u002Fgithub.com\u002Fpostgresml\u002Fpostgresml\n\n`pyodide`（在网页浏览器中运行 `lightgbm` Python 包）：https:\u002F\u002Fgithub.com\u002Fpyodide\u002Fpyodide\n\n`vaex-ml`（具有自身 LightGBM 接口的 Python DataFrame 库）：https:\u002F\u002Fgithub.com\u002Fvaexio\u002Fvaex\n\n支持\n-------\n\n- 在 Stack Overflow 上使用 `lightgbm` 标签提问：[link](https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002Fask?tags=lightgbm)，我们会关注新问题。\n- 在 [GitHub issues](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fissues) 上提交 **bug 报告** 和 **功能请求**。\n\n如何贡献\n-----------------\n\n请查看 [CONTRIBUTING](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md) 页面。\n\n微软开源行为准则\n-------------------------------------\n\n本项目已采用 [微软开源行为准则](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002F)。更多信息请参阅 [行为准则常见问题解答](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002Ffaq\u002F) 或发送邮件至 [opencode@microsoft.com](mailto:opencode@microsoft.com) 咨询更多问题或意见。\n\n参考论文\n----------------\n\nYu Shi, Guolin Ke, Zhuoming Chen, Shuxin Zheng, Tie-Yan Liu. “梯度提升决策树的量化训练”（[链接](https:\u002F\u002Fproceedings.neurips.cc\u002Fpaper\u002F2022\u002Fhash\u002F77911ed9e6e864ca1a3d165b2c3cb258-Abstract.html)）。神经信息处理系统进展 35（NeurIPS 2022），第 18822–18833 页。\n\nGuolin Ke, Qi Meng, Thomas Finley, Taifeng Wang, Wei Chen, Weidong Ma, Qiwei Ye, Tie-Yan Liu. “[LightGBM：一种高效的梯度提升决策树]”（[链接](https:\u002F\u002Fproceedings.neurips.cc\u002Fpaper\u002F2017\u002Fhash\u002F6449f44a102fde848669bdd9eb6b76fa-Abstract.html)）。神经信息处理系统进展 30（NIPS 2017），第 3149–3157 页。\n\nQi Meng, Guolin Ke, Taifeng Wang, Wei Chen, Qiwei Ye, Zhi-Ming Ma, Tie-Yan Liu. “[一种通信高效的并行决策树算法]”（[链接](https:\u002F\u002Fproceedings.neurips.cc\u002Fpaper\u002F2016\u002Fhash\u002F10a5ab2db37feedfdeaab192ead4ac0e-Abstract.html)）。神经信息处理系统进展 29（NIPS 2016），第 1279–1287 页。\n\nHuan Zhang, Si Si 和 Cho-Jui Hsieh. “[大规模树提升的 GPU 加速]”（[链接](https:\u002F\u002Farxiv.org\u002Fabs\u002F1706.08359)）。SysML 大会，2018 年。\n\n许可证\n-------\n\n本项目根据 MIT 许可证条款授权。更多详情请参阅 [LICENSE](https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fblob\u002Fmaster\u002FLICENSE)。","# LightGBM 快速上手指南\n\nLightGBM 是一个基于树模型的梯度提升框架，以训练速度快、内存占用低、精度高著称，并支持并行、分布式及 GPU 学习。\n\n## 1. 环境准备\n\n*   **操作系统**：Windows, Linux, macOS\n*   **前置依赖**：\n    *   **Python 用户**：建议 Python 3.7+。安装前请确保已安装 `pip` 或 `conda`。\n    *   **C++ 编译环境**（仅当需要从源码安装时）：需要 CMake 和 C++ 编译器（如 GCC, Clang, 或 Visual Studio）。\n    *   **GPU 支持**（可选）：如需启用 GPU 加速，需预先安装 NVIDIA CUDA Toolkit 和 OpenCL。\n\n## 2. 安装步骤\n\n推荐优先使用国内镜像源以提升下载速度。\n\n### 方式一：使用 pip 安装（推荐）\n\n```bash\n# 使用清华大学镜像源安装\npip install lightgbm -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 方式二：使用 conda 安装\n\n```bash\n# 使用清华镜像源配置通道并安装\nconda config --add channels https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fanaconda\u002Fcloud\u002Fconda-forge\u002F\nconda install lightgbm\n```\n\n### 方式三：从源码编译安装（高级用户）\n\n如需自定义功能（如开启 GPU 支持），可从 GitHub 克隆源码编译：\n\n```bash\ngit clone --recursive https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM.git\ncd LightGBM\u002Fpython-package\npython setup.py install --precompile\n```\n\n## 3. 基本使用\n\n以下是最简单的 Python 分类任务示例：\n\n```python\nimport lightgbm as lgb\nfrom sklearn.datasets import load_breast_cancer\nfrom sklearn.model_selection import train_test_split\n\n# 1. 准备数据\ndata = load_breast_cancer()\nX_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2)\n\n# 2. 创建 Dataset 对象\ntrain_data = lgb.Dataset(X_train, label=y_train)\nvalid_data = lgb.Dataset(X_test, label=y_test, reference=train_data)\n\n# 3. 设置参数\nparams = {\n    'objective': 'binary',      # 二分类任务\n    'metric': 'binary_logloss', # 评估指标\n    'verbose': -1               # 关闭日志输出\n}\n\n# 4. 训练模型\nmodel = lgb.train(\n    params,\n    train_data,\n    num_boost_round=100,        # 迭代次数\n    valid_sets=[valid_data],    # 验证集用于早停\n    early_stopping_rounds=10    # 连续 10 轮无提升则停止\n)\n\n# 5. 预测\ny_pred = model.predict(X_test)\nprint(f\"前 5 个预测概率: {y_pred[:5]}\")\n```","某大型电商公司的数据科学团队正面临每日数亿条用户行为日志的挑战，需要构建一个高精度的实时点击率（CTR）预测模型以优化广告推荐策略。\n\n### 没有 LightGBM 时\n- **训练周期过长**：使用传统梯度提升框架处理亿级稀疏特征数据时，单次全量模型训练往往耗时超过 24 小时，导致模型无法做到日更甚至小时更，严重滞后于市场变化。\n- **内存资源爆炸**：在加载大规模稠密与稀疏混合数据时，服务器内存频繁溢出（OOM），迫使团队不得不购买昂贵的高配实例或痛苦地进行数据降采样，牺牲了信息完整性。\n- **调参效率低下**：由于单次迭代速度慢，算法工程师难以进行充分的超参数网格搜索，模型精度长期卡在瓶颈期，无法挖掘深层特征交互价值。\n- **分布式部署复杂**：想要利用多机集群加速训练时，配置过程繁琐且通信开销巨大，线性加速比难以实现，算力利用率极低。\n\n### 使用 LightGBM 后\n- **训练速度飞跃**：借助基于直方图的算法和叶子生长策略，LightGBM 将同等数据量的训练时间从 24 小时压缩至 30 分钟以内，实现了模型的准实时更新。\n- **内存占用大幅降低**：通过互斥特征捆绑（EFB）和梯度单边采样（GOSS）技术，内存消耗降低了 60% 以上，使得在普通配置服务器上处理海量数据成为可能。\n- **模型精度显著提升**：更快的训练速度让团队能够尝试更多复杂的参数组合，最终使广告点击率预测的 AUC 指标提升了 1.5%，直接带动营收增长。\n- **原生支持分布式与 GPU**：轻松调用多机集群或 GPU 资源进行并行训练，无需复杂配置即可实现近线性的速度提升，极大释放了硬件算力潜能。\n\nLightGBM 以其卓越的速度、极低的内存占用和高精度的特性，成功将原本不可行的大规模实时预测任务转化为高效的生产力引擎。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flightgbm-org_LightGBM_49b578ad.png","lightgbm-org","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Flightgbm-org_ee77be0d.png",null,"https:\u002F\u002Fgithub.com\u002Flightgbm-org",[77,81,85,89,93,97,101,105,108,112],{"name":78,"color":79,"percentage":80},"C++","#f34b7d",50.7,{"name":82,"color":83,"percentage":84},"Python","#3572A5",21.9,{"name":86,"color":87,"percentage":88},"R","#198CE7",12,{"name":90,"color":91,"percentage":92},"Cuda","#3A4E3A",8.5,{"name":94,"color":95,"percentage":96},"C","#555555",3.1,{"name":98,"color":99,"percentage":100},"Shell","#89e051",1.5,{"name":102,"color":103,"percentage":104},"CMake","#DA3434",1.1,{"name":106,"color":74,"percentage":107},"SWIG",0.6,{"name":109,"color":110,"percentage":111},"PowerShell","#012456",0.5,{"name":113,"color":74,"percentage":114},"M4",0.1,18224,3996,"2026-04-09T00:25:59","MIT",1,"Linux, macOS, Windows","非必需。支持 GPU 学习（需编译 CUDA 版本），具体显卡型号、显存大小及 CUDA 版本在文中未明确说明，仅提及有专门的 CUDA 构建流程。","未说明（文档仅提及具有“较低的内存占用”优势，可处理大规模数据）",{"notes":124,"python":125,"dependencies":126},"该工具提供 Python、R、C++、.NET 等多种语言接口。默认安装通常为 CPU 版本，若需使用 GPU 加速，需要单独下载源码并配置 CUDA 环境进行编译。支持分布式学习和并行计算。","未说明（徽章显示支持多个 Python 版本，具体最低版本需参考 PyPI 页面，文中未列出具体数字）",[127,128,129],"C++ 编译器 (用于从源码编译)","CMake (用于从源码编译)","SWIG (可选，用于生成其他语言接口)",[14,35,16,131,52,13,132,15,133],"其他","视频","音频",[135,136,137,138,139,140,141,142,143,144,145,146,147,148],"gbdt","gbm","machine-learning","data-mining","distributed","lightgbm","gbrt","microsoft","decision-trees","gradient-boosting","python","r","parallel","kaggle",5,"2026-03-27T02:49:30.150509","2026-04-09T21:34:16.106115",[153,158,162,167,172,177],{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},26722,"LightGBM 的 R 语言包是否已发布到 CRAN？如何安装？","是的，{lightgbm} R 包现已正式发布在 CRAN 上。您可以直接通过 R 命令安装：install.packages(\"lightgbm\")。此前版本曾因 valgrind 检查失败被短暂移除，但维护团队已修复相关问题并重新提交成功。官方页面地址为：https:\u002F\u002Fcran.r-project.org\u002Fweb\u002Fpackages\u002Flightgbm\u002Findex.html","https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fissues\u002F629",{"id":159,"question_zh":160,"answer_zh":161,"source_url":157},26723,"如何在本地构建并测试用于提交 CRAN 的 LightGBM R 包？","可以使用项目提供的脚本和 devtools 进行构建与测试。具体步骤如下：\n1. 运行 shell 脚本构建包：sh build-cran-package.sh\n2. 在 R 中使用 devtools 提交到 win-builder 进行测试：\ndevtools::check_win_release(\n    pkg = \"lightgbm_r\u002F\",\n    args = NULL,\n    manual = TRUE,\n    email = \"your_email@example.com\",\n    quiet = FALSE\n)\n如果所有检查通过（通常只有一个新包特有的 NOTE，可忽略），即可准备向 CRAN 正式提交。",{"id":163,"question_zh":164,"answer_zh":165,"source_url":166},26724,"在回归任务中使用 Dart booster 时准确率很低，这是正常现象吗？","Dart booster 在某些情况下可能导致准确率不如预期的 GBDT。维护者已添加了一个新参数 max_drop 来限制被丢弃的树的数量，这有助于提升速度，但对准确率的影响需视具体数据而定。如果 max_drop \u003C= 0，则表示不限制数量。建议用户尝试调整该参数或切换回 gbdt 类型进行比较测试。若问题依旧，可开启新 issue 提供详细复现步骤。","https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fissues\u002F126",{"id":168,"question_zh":169,"answer_zh":170,"source_url":171},26725,"在多线程环境下调用 LightGBM C API 进行预测时结果不一致，如何解决？","从 LightGBM 3.0.0 开始，预测函数引入了 shared_lock 以支持多线程并行执行，但在高并发场景下曾出现预测结果不一致的问题。该问题已在后续版本（通过 PR #3771）中修复。请确保您使用的 LightGBM 版本高于 3.1.1，并重新编译或更新动态库文件（如 lib_lightgbm.so）。升级后，多线程预测将既高效又保持一致性。","https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fissues\u002F3751",{"id":173,"question_zh":174,"answer_zh":175,"source_url":176},26726,"使用多 GPU 训练时，当数据量较大时出现错误，怎么办？","在多 GPU 模式下，当训练数据量超过一定阈值（例如大于 10000 条样本）时可能会触发已知问题。此问题与 CUDA 内存分配或通信机制有关。建议暂时减少单次训练的数据规模，或改用单 GPU 模式验证模型逻辑。维护团队正在持续优化多 GPU 支持，请关注后续版本更新。如遇具体报错，请提供完整日志以便进一步诊断。","https:\u002F\u002Fgithub.com\u002Flightgbm-org\u002FLightGBM\u002Fissues\u002F3450",{"id":178,"question_zh":179,"answer_zh":180,"source_url":157},26727,"为什么我的 LightGBM R 包在安装时报错找不到 'LightGBM\u002Finclude' 目录？","该错误通常发生在 Windows 系统上手动源码安装时，原因是构建过程中未能正确复制头文件目录。解决方法包括：\n1. 确保使用的是最新版本的 R 包源码；\n2. 默认切换到 MinGW 编译器（若未检测到 Visual Studio 会自动 fallback）；\n3. 每次非预编译安装时清理旧文件再重新安装；\n4. 使用官方推荐的构建流程生成便携安装包。\n此外，直接从 CRAN 安装二进制包可避免此类问题：install.packages(\"lightgbm\")。",[182,187,192,197,202,207,212,217,222,227,232,237,242,247,252,257,262,267,272,277],{"id":183,"version":184,"summary_zh":185,"released_at":186},171931,"v4.6.0","## 变更\n\n## 💡 新特性\n\n- [CUDA] 修复 CUDA 架构的设置，并启用对 NVIDIA Blackwell 的支持 @StrikerRUS (#6812)\n- [python-package] 支持 Python 3.13 @jameslamb (#6668)\n- [GPU] 添加对 `device=gpu` 的线性树的支持 @dragonbra (#6567)\n- [c++] 为 Lambdarank 添加按查询的 Bagging 方法 @shiyu1994 (#6623)\n\n## 🔨 破坏性变更\n\n- [R-package] 要求使用 `lgb.Dataset`，移除对 `lgb.train()` 和 `lgb.cv()` 传递 `colnames` 和 `categorical_feature` 的支持 @jameslamb (#6714)\n- [python-package] 支持继承 scikit-learn 的估计器 @jameslamb (#6783)\n- [python-package] 从数组列表创建 Dataset 时，不再复制列主序的 numpy 数组 @jmoralez (#6773)\n- [python-package] 移除通过 `train()` 和 `cv()` 传递 `feature_name` 和 `categorical_feature` 的支持 @jameslamb (#6706)\n- [python-package] 要求 `scikit-learn>=0.24.2`，并使 scikit-learn 估计器与 `scikit-learn>=1.6.0dev` 兼容 @vnherdeiro (#6651)\n- [ci] 要求 CMake 3.28，并将 `FetchContent_Populate` 替换为 `FetchContent_MakeAvailable` @StrikerRUS (#6550)\n\n## 🚀 效率提升\n\n- [python-package] 预测时不再复制列主序的 numpy 数组 @jmoralez (#6751)\n- [python-package] 创建 Dataset 时不再复制列主序的 numpy 数组 @jmoralez (#6721)\n\n## 🐛 错误修复\n\n- [python-package] 分别检查是否已安装 `pyarrow` 和 `cffi` @mlondschien (#6785)\n- [c++] 修复 Contrib 模式下 Predictor 的生命周期和树的初始化 @AndreyOrb (#6778)\n- [python-package] 从 `pyarrow.Table` 推断特征名称 @mlondschien (#6781)\n- [python-package] 修复单棵树模型中 `predict()` 输出形状不一致的问题 @RektPunk (#6753)\n- [fix] 解决链接器连接构建中的潜在攻击问题 @shiyu1994 (#6752)\n- [R-package] 避免 R 包\u002Fconfigure 中的 bash 特有语法（非 POSIX 代码）@smoser (#6746)\n- [c++] 修复 `parallel_tree_learner_split_info` @moming39 (#6738)\n- [c++] 修复根节点的 `dump_model()` 信息 @neNasko1 (#6569)\n- [cmake] [R-package] 将适用于 macOS 的 vendored 库目录加入 OpenMP 搜索路径（修复 #6628）@jameslamb (#6629)\n- [R-package] 仅在请求了提前停止的情况下，才警告提前停止与 DART 提升不兼容 @serkor1 (#6619)\n- [cmake] 修复启用 OpenMP 的 macOS 静态构建问题（修复 #6601）@Mottl (#6600)\n\n## 📖 文档更新\n\n- [docs] 更新安装指南 @StrikerRUS (#6696)\n- [docs] 添加关于 pyodide 支持的说明 @jameslamb (#6715)\n- [docs] 由于线性树已支持 GPU，移除仅 CPU 的说明 @JAroyan (#6686)\n- [docs] 修复 CUDA 版本中 `force_col_wise` 参数的不准确注释 @StrikerRUS (#6695)\n- [docs] 在 README 中按逻辑分组外部项目，并添加一些新库 @StrikerRUS (#6691)\n- [docs] 在整个仓库中对 R 包和 Python 包使用一致的命名 @StrikerRUS (#6655)\n- [docs] 在 README 中添加超树内容 @pplonski (#6625)\n- [docs] 统一语言，并对部分参数进行小幅改进","2025-02-15T03:46:41",{"id":188,"version":189,"summary_zh":190,"released_at":191},171932,"v4.5.0","## 变更\n\n## 💡 新特性\n\n- [python包] 为 scikit-learn 估计器添加 `feature_names_in_` 属性（修复 #6279）@nicklamiller (#6310)\n- [R包] 添加 `num_trees_per_iter`、`num_trees` 和 `num_iter` 方法 @mayer79 (#6500)\n\n## 🔨 破坏性变更\n\n- [c++] 移除 HDFS 支持（修复 #6436）@jameslamb (#6534)\n- [ci] [python包] 在 macOS 12（Monterey）上运行 macOS x86_64 测试，停止手动设置 macOS wheel 标签 @jameslamb (#6487)\n\n## 🚀 效率提升\n\n- 在重新拟合时避免复制 @cbourjau (#6478)\n\n## 🐛 Bug 修复\n\n- [python包] 正确识别 `LGBMClassifier(num_class=2, objective=\"multiclass\")` 为多分类问题 @RektPunk (#6524)\n- [cmake] 对 macOS 上 OpenMP 的处理进行了一些改进 @barracuda156 (#6489)\n- [python包] 使用自定义目标函数时尊重 `verbose` 设置（修复 #6014）@jameslamb (#6428)\n- cmake：在 Linux 上将缺失的 `lib_lightgbm_swig.so` 添加到 `lightgbmlib.jar` 中 @shuttie (#6515)\n\n## 📖 文档更新\n\n- [docs] 更新 README 中的 GitHub Actions 徽章 @StrikerRUS (#6570)\n- [docs] 更新链接检查工作流的徽章 @StrikerRUS (#6568)\n- [python包] [docs] 扩展 Dataset 类的文档 @Plenitude-ai (#6558)\n- [docs] 修复指向多个 OpenMP 问题描述的链接 @StrikerRUS (#6562)\n- [docs] 添加 NuGet 版本徽章 @StrikerRUS (#6549)\n- [docs] 移除 Roadmap 链接（修复 #6556）@jameslamb (#6557)\n- [docs] 从仓库中移除过时的文档 @StrikerRUS (#6552)\n- [docs] 添加 conda 下载量徽章 @StrikerRUS (#6546)\n- [docs] 更新并简化安装文档 @jameslamb (#6536)\n- [doc] 修复量化训练的相关文档 @shiyu1994 (#6528)\n- [docs] 修复 FAQ 的 Markdown 格式 @StrikerRUS (#6521)\n- [docs] [R包] 更新 `cran-comments.md` 文件 @jameslamb (#6499)\n- [docs] 移除 PMML 重定向，并简化部分其他文档 @jameslamb (#6490)\n\n## 🧰 维护\n\n- 发布 v4.5.0 @jameslamb (#6538)\n- [ci] 修改 CodeQL 设置 @jameslamb (#6563)\n- [ci] 撤销 clang-18 LD_LIBRARY_PATH 临时解决方案 @jameslamb (#6559)\n- [ci] [R包] 帮助链接器在 clang18 任务中找到 `libstdc++.so.1` 文件（修复 #6553）@jameslamb (#6554)\n- [ci] 更新 codeowners 文件 @jameslamb (#6542)\n- [ci] [R包] 在重新打包 CRAN 样式的包时使用 `--no-xattrs` 参数 @jameslamb (#6540)\n- [ci] [R包] 添加覆盖更多 CRAN“附加检查”的 CI 任务，并修复 `R_NO_REMAP` 警告（修复 #6369）@jameslamb (#6523)\n- [ci] [R包] 添加 arm64 macOS R 包的 CI 任务（修复 #6481）@jameslamb (#6494)\n- [ci] 恢复 aarch64 Linux 构建（修复 #6509）@jameslamb (#6527)\n- [test][python] 修复 pandas 关于 `is_sparse` 函数的弃用警告 @StrikerRUS (#6532)\n- 修复 C++ 强制类型转换错误“循环条件中窄类型与宽类型的比较” @StrikerRUS (#6533)\n- [python包] 避免通过 `build-python.sh install` 覆盖依赖项 @jameslamb (#6526)\n- [tests][python] 修复 pandas 布尔列中的 NaN 值 @StrikerRUS (#6530)\n- 从拷贝构造函数中移除模板参数 @hgminh95 (#6514)\n- [ci]","2024-07-25T22:10:25",{"id":193,"version":194,"summary_zh":195,"released_at":196},171933,"v4.4.0","## 变更\n\n## 💡 新特性\n\n- [ci] [python-package] 添加 arm64 macOS 轮子包 @jameslamb (#6391)\n- [python-package] 添加对 NumPy 2.0 的支持，并针对依赖项的 nightly 版本进行测试（修复 #6454）@jameslamb (#6467)\n- [R-package] 将 start_iteration 暴露给 dump\u002Fsave\u002Flgb.model.dt.tree @mayer79 (#6398)\n- [python-package] 允许在参数中传递早停的最小 delta @borchero (#6274)\n- [python-package] 允许将包含布尔列的 Arrow 表传递给数据集 @borchero (#6353)\n- [c++][修复] 支持在 CPU 上使用分类特征进行量化训练 @shiyu1994 (#6301)\n\n## 🔨 破坏性变更\n\n- [python-package] 移除已弃用的 NumPy 随机数生成 API 的使用，要求 'numpy>=1.17.0' @jameslamb (#6468)\n- [python-package] 放弃对 Python 3.6 的支持，新增对 Python 3.12 的支持 @jameslamb (#6459)\n- [cmake] [c++] 在 macOS 上无条件使用 .dylib 扩展名 @jameslamb (#6418)\n- ENH 提高 CrossEntropy 损失函数梯度的稳定性 @lorentzenchr (#6327)\n- [R-package] 将 `slice()` 重命名为 `lgb.slice.Dataset()` @david-cortes (#6293)\n\n## 🚀 效率提升\n\n- [R-package] 使用 ALTREP 系统返回 C++ 分配的数组 @david-cortes (#6213)\n- [R-package] 加快 lgb.importance() 的执行速度 @mayer79 (#6364)\n- 修复多线程环境下单行预测性能问题 @Ten0 (#6024)\n\n## 🐛 Bug 修复\n\n- [R-package] 确保 interaction_constraints 的使用不会导致特征被忽略 @mayer79 (#6377)\n- [R-package] 构建数据集子集时跳过整数型分类特征检查（修复 #6412）@jmoralez (#6442)\n- [cmake] 使用 Visual Studio 生成器时始终以 Windows SDK v10.x 为目标（修复 #6448）@jameslamb (#6451)\n- 升级 dockerfile-cli 中的 CMake（修复 #6420）@narumiruna (#6426)\n- 移除导致死锁的不必要的 omp single 块（修复 #6273）@morokosi (#6394)\n- [python-package] 允许使用 early_stopping_round\u003C=0 来关闭早停功能（修复 #6401）@ddelzell (#6406)\n- [c++] 修复 Arrow 表实现中的内存泄漏 @borchero (#6314)\n- 修复 FindGroup 中分箱数量的计算问题 @CVPaul (#6019)\n\n## 📖 文档更新\n\n- [docs] 确保 pkgdown 站点索引准确反映 R 包的公共 API（修复 #6444）@jameslamb (#6445)\n- [docs] 记录如何通过 C API 使用自定义目标函数 @parsiad (#6396)\n- [docs] [ci] 鼓励使用 `cmake --build` @jameslamb (#6368)\n- [docs] 删除关于 CUDA 版本仍处于实验阶段的相关表述（修复 #6340）@jameslamb (#6371)\n\n## 🧰 维护工作\n\n- 发布 v4.4.0 @jameslamb (#6439)\n- [python-package] 在 LGBMModel.fit() 中添加了一些类型提示 @jameslamb (#6470)\n- [python-package] 清晰说明 max_depth 警告及其触发条件 @jameslamb (#6402)\n- [ci] 将代码风格检查工具升级到最新版本 @jameslamb (#6472)\n- [ci] [R-package] 添加来自 {lintr} 3.1.1 的新代码风格检查工具 @jameslamb (#6471)\n- [python-package] 使 LGBMDeprecationWarning 继承自 FutureWarning @jameslamb (#6447)\n- [ci] 进一步简化 CI 配置 @jameslamb (#6463)\n- [ci] 修复 CUDA 1","2024-06-15T04:08:32",{"id":198,"version":199,"summary_zh":200,"released_at":201},171934,"v4.3.0","## 变更\n\n## 💡 新特性\n\n- [CUDA] 为 CUDA_ARCHS 添加 arch=8.9，以支持 RTX 40XX 显卡 @DmitryUlyanov (#6272)\n\n## 🔨 破坏性变更\n\n- [cmake] [c++] 要求 CMake 版本不低于 3.18 @jameslamb (#6260)\n- [R 包] 移除 readRDS.lgb.Booster() 和 saveRDS.lgb.Booster() 方法 @jameslamb (#6246)\n\n## 🚀 效率提升\n\n- [R 包] 移除无益的并行化操作 @david-cortes (#6209)\n\n## 🐛 Bug 修复\n\n- [R 包] [ci] 移除 linear_tree_learner 中不必要的 include（修复 #6264）@jameslamb (#6265)\n- [cmake] [CUDA] 在非 CUDA 构建中忽略 CUDA 特有的源文件（修复 #6267）@sabjohnso (#6268)\n- [c++] 将 OpenMP 控制文件包含在 MSBuild 解决方案文件中（修复 #6238）@jameslamb (#6251)\n- [cmake] [swig] 使用 CMake 内置的文件复制机制，而非 'cp' 命令 @jameslamb (#6259)\n\n## 📖 文档更新\n\n- [docs] 在 README 中添加 LightGBMLSS 说明 @StatMixedML (#6254)\n- [ci] [docs] 将 Oliver 加入 CODEOWNERS 列表 @jameslamb (#6247)\n- 修复文档中的小拼写错误和语法问题 @arunstar (#6245)\n\n## 🧰 维护工作\n\n- [ci] 修复 'regular' CI 作业中 Conda 环境创建的问题（修复 #6282）@jameslamb (#6283)\n- [R 包] [ci] 将 vignette 从 'rmarkdown' 切换到 'markdown' 格式 @jameslamb (#6258)\n- [python 包] 修复 mypy 关于 pandas 分类特征的错误 @jameslamb (#6253)\n- [ci] 更新 issue 锁定工作流 @jameslamb (#6256)\n- [ci] 升级至 GoogleTest v1.14.0（修复 #5976）@jameslamb (#5981)\n- [ci] [R 包] 加速 valgrind 作业 @jameslamb (#6237)\n- 将开发版本号提升至 4.2.0.99 @jameslamb (#6241)","2024-01-26T02:11:11",{"id":203,"version":204,"summary_zh":205,"released_at":206},171935,"v4.2.0","✨ R 包 v4.2.0 现已在 CRAN 上发布（[链接](https:\u002F\u002Fcran.r-project.org\u002Fweb\u002Fpackages\u002Flightgbm\u002Findex.html)），这是该 R 包两年多来的首个重大版本。\n\n✨ Python 包现支持 Apache Arrow 表和数组（感谢 @borchero！）\n\n🔧 修复了量化训练支持中的一个关键 bug\n\n## 变更\n\n## 💡 新特性\n\n- [python-package] 允许在预测时传入 Arrow 表 @borchero (#6168)\n- [python-package] 允许将 Arrow 表和数组作为初始分数传入 @borchero (#6167)\n- [python-package] 允许将 Arrow 数组作为分组变量传入 @borchero (#6166)\n- [python-package] 允许将 Arrow 数组作为样本权重传入 @borchero (#6164)\n- [python-package] 接受 NumPy 生成器作为 `random_state` @david-cortes (#6174)\n- [python-package] 允许将 Arrow 数组作为标签传入 @borchero (#6163)\n- [python-package] 允许将 Arrow 表作为训练数据传入 @borchero (#6034)\n\n## 🔨 破坏性变更\n\n- [python-package] 修复 scikit-learn 自定义指标和目标函数中对 Dataset 元数据的访问问题 @jameslamb (#6108)\n- [CUDA] 停止对 CUDA 10 的支持，开始支持 CUDA 12（修复 #5789）@jameslamb (#6099)\n\n## 🚀 效率提升\n\n- [R-package] 修复指针获取效率低下的问题 @david-cortes (#6208)\n- [CUDA] 实现 CUDA 量化训练（修复 #5606）@shiyu1994 (#5933)\n\n## 🐛 Bug 修复\n\n- 修复 MSVC '\u002Fpermissive-' 模式下的错误（修复 #6230）@Zhaojun-Liu (#6232)\n- [R-package] [c++] 增加更严格的多线程控制，避免全局 OpenMP 的副作用（修复 #4705、#5102）@jameslamb (#6226)\n- [python-package] 在 predict 中对 DataFrame 进行浅拷贝（修复 #6195）@jmoralez (#6218)\n- 修复 Arrow 数据的空值处理问题 @borchero (#6227)\n- [R-package] 使用更安全的错误格式化模式（修复 #6212）@jameslamb (#6216)\n- [python-package] 修复 libpath.py 文件 @shiyu1994 (#6192)\n- 在每个 OpenMP `parallel` 区域中显式设置线程数 @jameslamb (#6135)\n- 加载模型文件时忽略未知参数 @jmoralez (#6126)\n- [python-package] [R-package] 在模型文本表示中包含更多参数（修复 #6010）@jameslamb (#6077)\n- [修复] 修复量化训练问题（修复 #5982、#5994）@shiyu1994 (#6092)\n- [python-package] 修复多次调用 `LGBMClassifier.fit` 后目标函数检测错误的问题 @david-cortes (#6002)\n\n## 📖 文档\n\n- [docs] 移除指向 Laurae++ 网站的链接 @jameslamb (#6193)\n- [docs] 减少文档链接中的重定向 @jameslamb (#6181)\n- [docs] 修复损坏的链接 @jameslamb (#6161)\n\n## 🧰 维护\n\n- 发布 v4.2.0 版本 @jameslamb (#6191)\n- [ci] [R-package] 允许接受更多可能由 Valgrind 检测到的警告 @jameslamb (#6233)\n- [ci] 将 Azure VMSS 升级至使用 Mariner Linux @shiyu1994 (#6222)\n- 添加 MSVC 符合性检查 @Zhaojun-Liu (#6234)\n- [python-package] 为传递包含空块的 Arrow 数组添加测试 @borchero (#6210)\n- [R-package] 更换 CRAN 维护者 @jameslamb (#6224)\n- [CUDA] 修复错误信息中的拼写错误 @jameslamb (#6207)\n- [python-package] 忽略 mypy 报错","2023-12-21T18:58:56",{"id":208,"version":209,"summary_zh":210,"released_at":211},171936,"v4.1.0","## 变更\n\n## 💡 新特性\n\n- 在 LambdaMART 中通过 GAM 处理位置偏差 @metpavel (#5929)\n\n## 🐛 修复的 bug\n\n- 修复使用 GOSS 数据采样策略时随机森林模型的更新问题 @mjmckp (#6017)\n- [R 包] 修复将 `lgb.Dataset` 实例传递给 `lightgbm()` 时目标函数被错误检测的问题 @david-cortes (#6005)\n- [Python 包] 使在无网络连接的情况下也能构建 wheel 包（修复 #5979）@jameslamb (#6042)\n- 修复回归目标的百分位数计算问题 @zachary62 (#5848)\n- [CUDA] 在线程中设置 GPU 设备 ID @shiyu1994 (#6028)\n- [R 包] 修复向 `lightgbm()` 传递分类特征时出现的错误（修复 #6000）@david-cortes (#6003)\n- [R 包] 限制测试和示例中使用的线程数量（修复 #5987）@jameslamb (#5988)\n\n## 📖 文档\n\n- [Python 包] [文档] 更新 docstring 示例中 `eval_hist` 的键格式 @Alnusjaponica (#5980)\n- [文档] 将 vaex-ml 添加到外部仓库列表中 @jameslamb (#6085)\n- [CI] [文档] 修复损坏的 ACM 链接 @jameslamb (#6083)\n- [文档] 修复 README 中的拼写错误 @kyleengel (#6071)\n- [文档] 修复损坏的链接 @jameslamb (#6059)\n- 修复 Python Dockerfile @GyuminJack (#5984)\n\n## 🧰 维护\n\n- 发布 v4.1.0 @jameslamb (#6076)\n- 从 `.gitignore` 中移除多余的待办事项 @borchero (#6081)\n- [Python 包] 简化对 Pandas 数据的处理 @jameslamb (#6066)\n- [CI] [R 包] 在 Linux 和 macOS 上针对 R 4.3 版本进行测试 @jameslamb (#6075)\n- 降低部分日志消息的冗余度 @jameslamb (#6073)\n- [Python 包] 移除 `CVBooster._append()` @jameslamb (#6057)\n- [Python 包] 对 `CallbackEnv` 使用数据类 @jameslamb (#6048)\n- [CI] [Python 包] 增加更多代码检查 @jameslamb (#6049)\n- [CI] 防止锁线程功能锁定带有“功能请求”标签的问题 @jameslamb (#6047)\n- [CI] 添加机器人以锁定不活跃的问题和 PR @jameslamb (#6037)\n- [CI] 修复 R Linux 作业的 GPG 密钥下载问题（修复 #6038）@jameslamb (#6039)\n- [CI] 在部分构建中强制要求 Dask 版本 ≥2023.5.0（修复 #6030）@shiyu1994 (#6032)\n- [CI] [R 包] 使用 {lintr} 3.1 @jameslamb (#5997)\n- [Python 包] 将 `np.find_common_type` 替换为 `np.result_type` @jmoralez (#5999)\n- [CI] 简化 CODEOWNERS 文件 @jameslamb (#5998)\n- [R 包] 将测试常量整合到辅助文件中 @jameslamb (#5992)\n- [R 包] 移除未使用的内部变量 @jameslamb (#5991)\n- [CI] 在 AppVeyor 作业中使用更新的 h5py 版本（修复 #5995）@jameslamb (#5996)\n- [Python 包] 使 `_InnerPredictor` 的构造更加严格 @jameslamb (#5961)\n\n----\n\n> **注意**\n>\n> 由于 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FLightGBM\u002Fissues\u002F5987 中记录的问题，本次 R 包的发布并未提交至 CRAN。","2023-09-12T01:51:05",{"id":213,"version":214,"summary_zh":215,"released_at":216},171937,"v4.0.0","## 变更\n\n此版本包含了自 1.5 年前 `v3.3.1` 发布以来的所有未公开变更（[链接](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FLightGBM\u002Freleases\u002Ftag\u002Fv3.3.1)）。\n\n改进概览：\n\n* 全面重写的 CUDA 实现，并且更多操作在 GPU 上执行\n* 使用量化训练可在 CPU 上显著提升训练速度（[论文链接](https:\u002F\u002Farxiv.org\u002Fabs\u002F2207.09682)）\n* 支持 C++17\n* Python 包：\n    - 现在使用 `scikit-build-core`（[链接](https:\u002F\u002Fgithub.com\u002Fscikit-build\u002Fscikit-build-core)）作为构建后端\n    - `manylinux_2_28` Linux 轮子现在自动支持基于 OpenCL 的 GPU 构建（而非 CUDA）……只需运行 `pip install lightgbm`，然后在参数中传入 `{\"device\": \"gpu\"}` 即可（感谢 @jgiannuzzi！）\n    - 大量使用内联类型提示，并通过 `py.typed` 导出，以便任何使用 LightGBM 的代码都能受益\n    - 支持 Python 3.10、3.11\n    - 支持 `pandas` 可空类型\n    - 可配置的阈值（`lgb.early_stopping(..., min_delta=n)`），用于确定评估指标需要改善多少才被视为“改进”以触发提前停止\n    - Dask 中的自定义目标函数\n    - `scikit-learn` 不再是必需依赖项\n    - 所有回调现在都可被 pickle 序列化（以更好地与例如 `ray`、Dask 等工具互操作）（感谢 @Yard1！）\n* R 包：\n    - 更高效地支持更多数据类型进行预测，如 `dgCMatrix` 和 `dsparseMatrix`（感谢 @david-cortes！）\n    - 接口更加符合 R 语言习惯……例如支持 `saveRDS()` 和 `readRDS()` 用于 `Booster`，以及为 `Dataset` 提供 `print()` 和 `summary()` 方法（感谢 @david-cortes！）\n    - 修复了与多种竞争性参数传递方式相关的多个 bug\n    - 支持 R 4.2、4.3\n\n破坏性变更概览：\n\n* Python 包：\n    - 停止对 Python 3.6 的测试及支持承诺（尽管技术上仍可安装）\n    - 停止对 macOS Mojave (10.14) 的支持\n    - 将许多函数和类属性设为私有，大幅减少 `from lightgbm import *` 导入的内容\n    - 移除 `setup.py` 和 `pip install --install-option` 支持\n    - 移除对 `pip install --install-option` 的支持（为兼容较新版本的 pip，请参阅 https:\u002F\u002Fgithub.com\u002Fpypa\u002Fpip\u002Fissues\u002F11358）\n        - 新模式请参阅 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FLightGBM\u002Fblob\u002Fmaster\u002Fpython-package\u002FREADME.rst\n        - 背景信息请参阅 https:\u002F\u002Fgithub.com\u002Fpypa\u002Fpip\u002Fissues\u002F11358 和 #5061\n    - 停止通过 `MSBUild.exe` 安装……现在需要单独编译 `lib_lightgbm.dll`，然后再构建包含它的轮子\n* R 包：\n    - 停止对 Solaris 的支持\n    - 移除大部分通过 `...` 传递参数的支持\n    - 移除 `lgb.unloader()`\n    - 在 `predict()` 中改用 `predict(newdata, type = ...)`，以与基础 R 及大多数其他机器学习项目保持一致\n\n## 💡 新特性\n\n- [python-package] 添加 'pandas' 扩展","2023-07-13T18:43:08",{"id":218,"version":219,"summary_zh":220,"released_at":221},171938,"v3.3.5","## 变更\n\n这是一个特殊的版本，发布目的是防止 R 包被归档到 CRAN。\n\n有关背景信息，请参阅 #5661 和 #5662。\n\n此版本仅包含相对于 `v3.3.4` 的更改，这些更改是为了防止 R 包从 CRAN 上移除而必需的。\n\n## 💡 新特性\n\n无\n\n## 🔨 破坏性变更\n\n无\n\n## 🚀 效率提升\n\n无\n\n## 🐛 错误修复\n\n- [ci] [R-package] 修复 clang 15 关于未限定调用的警告（修复 #5661）@jameslamb (#662)\n\n## 📖 文档\n\n无\n\n## 🧰 维护\n\n无","2023-01-24T03:15:36",{"id":223,"version":224,"summary_zh":225,"released_at":226},171939,"v3.3.4","## 变更\n\n这是一个特别版本，发布目的是防止 R 包被归档到 CRAN。\n\n有关背景信息，请参阅 #5618 和 #5619。\n\n此版本仅包含相对于 `v3.3.3` 的变更，这些变更旨在防止 R 包从 CRAN 上移除。\n\n## 💡 新特性\n\n无\n\n## 🔨 破坏性变更\n\n无\n\n## 🚀 效率提升\n\n无\n\n## 🐛 错误修复\n\n- 更倾向于使用 'vsnprintf' 而不是 'vsprintf' @jameslamb (#5561)\n\n## 📖 文档\n\n无\n\n## 🧰 维护\n\n- [ci] 针对 R 4.2.2 进行测试 @jameslamb (#5621)\n","2023-01-04T22:08:12",{"id":228,"version":229,"summary_zh":230,"released_at":231},171940,"v3.3.3","## 变更\n\n这是一个特别版本，旨在防止 R 包被归档到 CRAN。\n\n有关背景信息，请参阅 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FLightGBM\u002Fissues\u002F5502 和 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FLightGBM\u002Fpull\u002F5525。\n\n此版本仅包含与 `v3.3.2` 相关、为避免 R 包从 CRAN 上移除所必需的更改。\n\n## 💡 新特性\n\n- [部分：仅适用于 R 包] 添加对 Visual Studio 2022 的支持 @StrikerRUS (#4889)\n\n## 🔨 破坏性变更\n\n无\n\n## 🚀 效率提升\n\n无\n\n## 🐛 Bug 修复\n\n- 在 CMakeLists.txt 中检查 win32 平台下 inet_pton 的存在性（修复 #5019）@shiyu1994 (#5159)\n- [ci] [R 包] 在 Windows CI 作业中使用 R 4.2.1（修复 #4881）@jameslamb (#5503)\n- [R 包] 修复在非 UTF-8 区域设置中处理非 ASCII 特征时的测试问题 @jameslamb (#5526)\n\n## 📖 文档\n\n无\n\n## 🧰 维护\n\n- [ci] 对目标为 release\u002F 分支的 PR 运行 Appveyor 检查 @jameslamb (#5528)\n- [ci] 对目标为 release\u002F 分支的拉取请求运行 CI @jameslamb (#5527)\n- [ci] [R 包] 确保 MSVC 作业在测试失败时也会失败（修复 #5439）@jameslamb (#5448)\n","2022-10-10T18:03:31",{"id":233,"version":234,"summary_zh":235,"released_at":236},171941,"v3.3.2","## Changes\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- [R-package] Apply patch for R4.2 on Windows @shiyu1994 (#4923)\r\n\r\n## 📖 Documentation\r\n\r\n- [docs] [R-package] update cran-comments for v3.3.1 release @jameslamb (#4738)\r\n\r\n## 🧰 Maintenance\r\n\r\n- [ci] Temporary pin dask version at CI @StrikerRUS (#4770)\r\n","2022-01-07T14:53:52",{"id":238,"version":239,"summary_zh":240,"released_at":241},171942,"v3.3.1","## Changes\r\n\r\n## 💡 New Features\r\n\r\n- [R-package] Expand user paths in file names @david-cortes (#4687)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- [python][sklearn] Allow non-serializable objects in callbacks argument @StrikerRUS (#4723)\r\n- Fix ASAN issues with `std::function` usage @david-cortes (#4673)\r\n- fix behavior for default objective and metric @StrikerRUS (#4660)\r\n\r\n## 📖 Documentation\r\n\r\n- [docs] Add Tong Wu and Zhiyuan He as code owners @shiyu1994 (#4717)\r\n- [docs] fix R API link to point to the current version of docs @StrikerRUS (#4691)\r\n- [docs] update comment about pre-installed Java version for SWIG build @StrikerRUS (#4710)\r\n- [docs] fix C API docs rendering @StrikerRUS (#4688)\r\n- [docs] Add avatar to Yu Shi in R docs @StrikerRUS (#4690)\r\n\r\n## 🧰 Maintenance\r\n\r\n- release v3.3.1 @jameslamb (#4715)\r\n- [ci] introduce CI jobs that mimic CRAN gcc-ASAN and clang-ASAN tests (fixes #4674) @jameslamb (#4678)\r\n- [R-package][test] add reference to the original issue in R-package test @StrikerRUS (#4720)\r\n- [python] Improve error message for plot_metric with Booster @js850 (#4709)\r\n- [R-package] allow for small numerical differences in Booster test @jameslamb (#4714)\r\n- Fix some paramater hints when loading from binary file @hzy46 (#4701)\r\n- [ci] fix CI Windows script to use downloaded SWIG, not the pre-installed one @StrikerRUS (#4711)\r\n- [ci] Rename RTD config file @StrikerRUS (#4689)\r\n- [ci] Bump Google Test version from `1.10.0` to `1.11.0` @StrikerRUS (#4683)\r\n- [python] fix mypy error in engine.py @rakki-18 (#4675)\r\n- [python] fix mypy error in setup.py @rakki-18 (#4671)\r\n- update Guolin's e-mail in `setup.py` @StrikerRUS (#4663)\r\n- Replace deprecated `licenseUrl` field with `license` one in `.nuspec` file @StrikerRUS (#4669)\r\n- [python][sklearn] use `__sklearn_is_fitted__()` in all estimator fitness checks @StrikerRUS (#4654)\r\n- [ci] Bump version for development @StrikerRUS (#4662)\r\n","2021-10-27T22:59:08",{"id":243,"version":244,"summary_zh":245,"released_at":246},171943,"v3.3.0","## Changes\r\n\r\n## 💡 New Features\r\n\r\n- allow inclusion in C programs @drewmiller (#4608)\r\n- add param aliases from scikit-learn @StrikerRUS (#4637)\r\n- [python] add placeholders to titles in plotting functions @StrikerRUS (#4614)\r\n- [python-package] Support 2d collections as input for `init_score` in multiclass classification task @jmoralez (#4150)\r\n- [python] add parameter object_hook to method dump_model @xadupre (#4533)\r\n- [python] support Dataset.get_data for Sequence input. @cyfdecyf (#4472)\r\n- [python] allow to pass some params as pathlib.Path objects @StrikerRUS (#4440)\r\n- [python-package] Create Dataset from multiple data files  @cyfdecyf (#4089)\r\n- [dask] add support for eval sets and custom eval functions @ffineis (#4101)\r\n- Add linear leaf models to json output (fixes #4186) @btrotta (#4329)\r\n- [dask] run Dask tests on aarch64 architecture @StrikerRUS (#3996)\r\n- [python] handle arbitrary length feature names in Python-package @StrikerRUS (#4293)\r\n- Precise text file parsing @cyfdecyf (#4081)\r\n- added aliases to params @StrikerRUS (#4205)\r\n- [swig] add wrapper for LGBM_DatasetGetFeatureNames @shuttie (#4103)\r\n\r\n## 🔨 Breaking\r\n\r\n- [python] deprecate \"auto\" value of `ylabel` argument of `plot_metric()` function @StrikerRUS (#4624)\r\n- [python] rename `print_evaluation()` into `log_evaluation()` @StrikerRUS (#4604)\r\n- [RFC][python] deprecate advanced args of `train()` and `cv()`  functions and sklearn wrapper @StrikerRUS (#4574)\r\n- [RFC][python] deprecate `silent` and standalone `verbose` args. Prefer global `verbose` param @StrikerRUS (#4577)\r\n- [python] add 'auto' value for `importance_type` param in plotting @StrikerRUS (#4570)\r\n- [dask] Make output of feature contribution predictions for sparse matrices match those from sklearn estimators (fixes #3881) @jameslamb (#4378)\r\n- [R-package] change default nrounds to 100 to match LightGBM core library default @david-cortes (#4197)\r\n\r\n## 🚀 Efficiency Improvement\r\n\r\n- simplify and speed up comparisons for splits with identical gains @jameslamb (#4542)\r\n- factor out .size() checks in GetDataType() @jameslamb (#4541)\r\n- consolidate duplicate conditions in TextReader @jameslamb (#4530)\r\n- [python] replace numpy.zeros with numpy.empty for the speedup @StrikerRUS (#4410)\r\n- [R-package] avoid unnecessary computation of std deviations in lgb.cv() @jameslamb (#4360)\r\n- Replace division of exponential in Gamma loss @lorentzenchr (#4289)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- [R-package] fix segfaults caused by missing Booster and Dataset handles (fixes #4208) @jameslamb (#4586)\r\n- move Network method implementations from network.h to network.cpp (fixes #4464) @jameslamb (#4496)\r\n- [R-package] prevent memory leak if pointer fails to allocate  @david-cortes (#4613)\r\n- [R-package] Fix R memory leaks (fixes #4282, fixes #3462) @david-cortes (#4597)\r\n- [python][sklearn] respect `eval_at` aliases in keyword arguments @StrikerRUS (#4599)\r\n- [dask] Fixed Dask type annotation @StrikerRUS (#4558)\r\n- [R-package] allow construction of Dataset from CSV without header (fixes #4553) @jameslamb (#4554)\r\n- [R-package] fix OpenMP checking on macOS (fixes #4131) @jameslamb (#4507)\r\n- [R-package] pass R-configured compiler flags to checks in configure @jameslamb (#4506)\r\n- [R-package] use C++ compiler for pre-compile checks on Windows @jameslamb (#4504)\r\n- [dask] find all needed ports in each host at once (fixes #4458) @jmoralez (#4498)\r\n- Fix undefined behavior with NaN input in CategoricalDecision() @hcho3 (#4468)\r\n- [dask] determine output shape of array in predict (fixes #4285) @jmoralez (#4351)\r\n- [fix] fix Reservoir Sampling in Sample of random.h (fix #4371 and #4134) @shiyu1994 (#4450)\r\n- [CUDA] fix CUDA memory error by reducing block number (#4315) @RobinDong (#4327)\r\n- [R-package] fix protection stack imbalance and unprotected objects (fixes #4390) @fabsig (#4391)\r\n- [dask] pass additional predict() parameters through when input is a Dask Array @jameslamb (#4399)\r\n- fix param aliases @StrikerRUS (#4387)\r\n- sync for init score of binary objective function @loveclj (#4332)\r\n- Fix undefined behavior in ArrayArgs::Partition() when interval size is 1 (fixes #4272) @kruda (#4280)\r\n- Log warning instead of fatal when parsing float get under\u002Foverflow. @cyfdecyf (#4336)\r\n- [fix] fix Sample when sampling only one element (fix #4134) @shiyu1994 (#4324)\r\n- [R-package] move more finalizer logic into C++ side to address memory leaks @jameslamb (#4353)\r\n- [tests][python] fix f-string in test_dask.py @StrikerRUS (#4373)\r\n- [fix] skip empty bins when calculating cnt_in_bin in BinMapper::FindBin (fix #4301) @shiyu1994 (#4325)\r\n- [fix] fix GatherInfoForThresholdNumerical boundary (fix #4286) @shiyu1994 (#4322)\r\n- fix calculation of weighted gamma loss (fixes #4174) @mayer79 (#4283)\r\n- [R-package] prevent symbol lookup conflicts (fixes #4045) @jameslamb (#4155)\r\n- [R-package] avoid misleading warnings when using interaction constraints (fixes #4108) @jameslamb (#4232)\r\n- [fix] Fix bug in data distributed learning","2021-10-09T02:07:45",{"id":248,"version":249,"summary_zh":250,"released_at":251},171944,"v3.2.1","## Changes\r\n\r\n## 💡 New Features\r\n\r\n- [tests][dask] Add voting_parallel algorithm in tests (fixes #3834) @jmoralez (#4088)\r\n- [dask] Include support for raw_score in predict (fixes #3793) @jmoralez (#4024)\r\n\r\n## 🔨 Breaking\r\n\r\n- [docs] remove macOS installation method with Homebrew formula  @StrikerRUS (#4122)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- enforce interaction constraints with monotone_constraints_method = intermediate\u002Fadvanced @ChristophAymannsQC (#4043)\r\n- [dask] make random port search more resilient to random collisions (fixes #4057) @jameslamb (#4133)\r\n- [dask] run one training task on each worker @jameslamb (#4132)\r\n- Fix tcp_no_deplay setting by using int type @htgeis (#4058)\r\n\r\n## 📖 Documentation\r\n\r\n- [docs] update link to Boost binaries @StrikerRUS (#4157)\r\n- [docs] add missed CUDA device type in docs @StrikerRUS (#4130)\r\n- [docs] Add alt text on images (related to #4036) @akshitadixit (#4038)\r\n- [docs] add dtreeviz to the list of external projects @StrikerRUS (#4098)\r\n- [docs] add Hummingbird to the list of external projects @StrikerRUS (#4096)\r\n\r\n## 🧰 Maintenance\r\n\r\n- v3.2.1 release @jameslamb (#4169)\r\n- [python] Migrated to f-strings for .\\.nuget\\create_nuget.py  #4136 @coldkillerr (#4162)\r\n- [ci] Add debian-clang-devel CI job for the R package @jameslamb (#4164)\r\n- [python-package] Add type hints to the callback file @deddyjobson (#4093)\r\n- [ci] Restrict breathe version at CI @StrikerRUS (#4168)\r\n- [ci] upgrade R to 4.0.5 in CI @jameslamb (#4158)\r\n- [ci] Stop running CUDA tests at CI @StrikerRUS (#4167)\r\n- [tests][dask] replace client fixture with cluster fixture @jmoralez (#4159)\r\n- [python] added f-strings to docs\u002Fconf.py @NovusEdge (#4147)\r\n- [ci] run 'brew update' in macOS jobs (fixes #4160) @jameslamb (#4161)\r\n- clarify DEBUG-level log about tree depth @jameslamb (#4126)\r\n- [tests][dask] use dy_true mean in denominator for _r2_score @jmoralez (#4151)\r\n- [ci] use GitHub Actions to re-generate R configure @StrikerRUS (#4140)\r\n- [python] added f-strings to python-package\u002Fsetup.py @NovusEdge (#4145)\r\n- [docs] fix param name typo in comments @StrikerRUS (#4139)\r\n- [tests][dask] test all boosting types (fixes #3896) @jmoralez (#4119)\r\n- [ci] use f-strings in `libpath.py` @StrikerRUS (#4137)\r\n- update CODEOWNERS @jameslamb (#4127)\r\n- [ci] Added curl library to the installed packages list inside dockerfile-python installation @hemanth171 (#4129)\r\n- [ci] apply cpplint to cpp tests @StrikerRUS (#4092)\r\n- [ci] remove output parametrization from two Dask tests @StrikerRUS (#4123)\r\n- [ci] build CRAN R-package on Azure with every commit and attach it to releases @StrikerRUS (#4117)\r\n- [tests][dask] Create an informative categorical feature @jmoralez (#4113)\r\n- [ci] bump CUDA version and pull dockers from NVIDIA NGC @StrikerRUS (#4112)\r\n- [ci] attach archives with complete source code of the repo to releases @StrikerRUS (#4111)\r\n- [R-package] fix typo in linear learner test @jameslamb (#4109)\r\n- [ci] restrict CMake version for CUDA+Clang jobs @StrikerRUS (#4104)\r\n- [ci] fix flaky Azure Pipelines jobs (2) @StrikerRUS (#4097)\r\n- [ci] fix flaky Azure Pipelines jobs @StrikerRUS (#4095)\r\n- [ci] Bump version for development @StrikerRUS (#4094)\r\n","2021-04-12T23:03:24",{"id":253,"version":254,"summary_zh":255,"released_at":256},171945,"v3.2.0","## Changes\r\n\r\n## 💡 New Features\r\n\r\n- [SWIG] Add streaming data support + cpp tests @AlbertoEAF (#3997)\r\n- [dask] Include support for init_score @jmoralez (#3950)\r\n- [dask] [python-package] include support for column array as label @jmoralez (#3943)\r\n- [dask] allow tight control over ports @jameslamb (#3994)\r\n- Run tests and build Python wheels for aarch64 architecture @StrikerRUS (#3948)\r\n- [dask] Add support for 'pred_leaf' in Dask estimators (fixes #3792) @jameslamb (#3919)\r\n- [SWIG] add size_t manipulation functions @shuttie (#3895)\r\n- Add new task type: \"save_binary\". @cyfdecyf (#3651)\r\n- [CUDA] added support for Clang @StrikerRUS (#3886)\r\n- [python] Start supporting Python 3.9 @StrikerRUS (#3693)\r\n- [python] Allow to register custom logger in Python-package @StrikerRUS (#3820)\r\n- [dask] Support pred_contrib in Dask predict() methods (fixes #3713) @jameslamb (#3774)\r\n- [python-package] [dask] Add DaskLGBMRanker @ffineis (#3708)\r\n- [R-package] Add GPU install options (fixes #3765) @jameslamb (#3779)\r\n- [R-package] enable use of trees with linear models at leaves (fixes #3319) @jameslamb (#3699)\r\n- support more filesystem as the storage for model file  @htgeis (#3730)\r\n- [R-package] add support for non-ASCII feature names (fixes #2983) @jameslamb (#3647)\r\n- [R-package] allow access to params in Booster @jameslamb (#3662)\r\n- Trees with linear models at leaves @btrotta (#3299)\r\n- [python] [dask] add initial dask integration @SfinxCZ (#3515)\r\n- [python] Windows wheels that support GPUs via OpenCL @itamarst (#3403)\r\n\r\n## 🔨 Breaking\r\n\r\n- [ci][SWIG] update SWIG version and use separate CI job to produce SWIG artifacts @StrikerRUS (#3727)\r\n- [ci] indicate support of Big Sur and drop High Sierra @StrikerRUS (#3749)\r\n- [python] Drop Python 2 support @StrikerRUS (#3581)\r\n\r\n## 🚀 Efficiency Improvement\r\n\r\n- [dask] use random ports in network setup @jmoralez (#3823)\r\n- Optimize array-from-ctypes in basic.py @asford (#3927)\r\n- Change Dataset::CopySubrow from group-wise to column-wise @shiyu1994 (#3720)\r\n- [python-package] remove unused Eigen files, compile with EIGEN_MPL2_ONLY (fixes #3684) @jameslamb (#3685)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- Range check for DCG position discount lookup @ashok-ponnuswami-msft (#4069)\r\n- Fix parsing of non-finite values @mjmckp (#3942)\r\n- Set `is_linear_` to false when it is absent from the model file @shiyu1994 (#4056)\r\n- Fix evalution of linear trees with a single leaf. @mjmckp (#3987)\r\n- Use high precision conversion from double to string in Tree::ToString() for new linear tree members @mjmckp (#3938)\r\n- Fix for CreatePredictor function and VS2017 Debug build @mjmckp (#3937)\r\n- Fix access violation exception that can occur during invocation of loop lambda function when inner_start >= inner_end in 'For' template. @mjmckp (#3936)\r\n- [dask] remove extra 'client' kwarg in DaskLGBMRegressor @jameslamb (#3906)\r\n- [CUDA] Support CUDA 9 and test different CUDA versions at CI @StrikerRUS (#3880)\r\n- [dask] fix Dask docstrings and mimic sklearn wrapper importing way @StrikerRUS (#3855)\r\n- [python-package] respect parameter aliases for network params @jameslamb (#3813)\r\n- Create a new TcpSocket when connection failed @wjsi (#3840)\r\n- [dask] Drop aliases of core network parameters @StrikerRUS (#3843)\r\n- Don't copy more than has been allocated to device_features. @ChipKerchner (#3752)\r\n- Fix thread-safety in C API's PredictSingleRow @AlbertoEAF (#3771)\r\n- [dask] allow parameter aliases for local_listen_port, num_threads, tree_learner (fixes #3671) @jameslamb (#3789)\r\n- [dask] [python-package] Search for available ports when setting up network (fixes #3753) @jameslamb (#3766)\r\n- Update CUDA treelearner according to changes introduced for linear trees @StrikerRUS (#3750)\r\n- Ensure CUDA vector length is consistent with AlignedSize @ChipKerchner (#3748)\r\n- Initialize any_nan_ property of LinearTreeLearner @btrotta (#3709)\r\n- Fix bug in corner case with histogram bin mismatch @shiyu1994 (#3694)\r\n- move CheckParamConflict() after LogLevel processing @h-vetinari (#3742)\r\n- Fix bug in ExtractFeaturesFromMemory when predidct_fun_ is used @shiyu1994 (#3721)\r\n- Fix compiler warnings caused by implicit type conversion (fixes #3677) @btrotta (#3729)\r\n- fix test_monotone_constraints often fails on MPI builds @CharlesAuguste (#3683)\r\n- [R-package] remove broken default for `file` in readRDS \u002F saveRDS functions @jameslamb (#3664)\r\n- Added static cast from double to float @sisco0 (#3678)\r\n- [docs] fix R documentation builds (fixes #3655) @jameslamb (#3656)\r\n- [python] add average precision into higher_better eval @penolove (#3649)\r\n- Fix model locale issue and improve model R\u002FW performance. @AlbertoEAF (#3405)\r\n\r\n## 📖 Documentation\r\n\r\n- [docs] add Yu Shi to repo maintainers @StrikerRUS (#4060)\r\n- [dask] add tutorial documentation (fixes #3814, fixes #3838) @jameslamb (#4030)\r\n- [docs] Add alt text on images in index.rst @marcelonieva7 (#4029)\r\n- [docs] update description of deterministic parameter @shiyu1994 (#4027)\r\n- [docs","2021-03-22T13:43:57",{"id":258,"version":259,"summary_zh":260,"released_at":261},171946,"v3.1.1","## Changes\r\n\r\n## 💡 New Features\r\n\r\n- [R-package] {lightgbm} is now available on CRAN (fixes #629) @jameslamb (#3612)\r\n- [R-package] Use command-line args to customize CMake builds (fixes #2441) @jameslamb (#3574)\r\n- [python] Allow to build Python wheel package @dolfinus (#3594)\r\n\r\n## 🚀 Efficiency Improvement\r\n\r\n- [R-package] use as.factor() instead of factor() in lgb.cv() @jameslamb (#3560)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- [R-package] fix partial matching of keyword arguments in lgb.cv() (fixes #3629) @jameslamb (#3630)\r\n- fix typo in dataset checks @StrikerRUS (#3631)\r\n- Check max_bin, etc. match config when using binary @cyfdecyf (#3592)\r\n- [R-package] construct dataset earlier in lgb.train and lgb.cv (fixes #3583) @tonyk7440 (#3598)\r\n- [python] fix regex in MANIFEST file @StrikerRUS (#3593)\r\n- Fix #3557 and potential issue with dense multi-val feature groups. @shiyu1994 (#3590)\r\n- fix deterministic, part2 @guolinke (#3578)\r\n- remove max_block_size_ in train states (fix #3570) @shiyu1994 (#3575)\r\n\r\n## 📖 Documentation\r\n\r\n- [python] more detailed docs for trees_to_dataframe(), create_tree_digraph(), plot_tree() @jameslamb (#3618)\r\n- [docs] update documentation with AUC-mu, average precision @jameslamb (#3627)\r\n- [docs] Add new badges @StrikerRUS (#3610)\r\n- [docs][R-package] fix typo @StrikerRUS (#3609)\r\n- [docs] add link to lightgbm4j to readme @shuttie (#3597)\r\n\r\n## 🧰 Maintenance\r\n\r\n- release 3.1.1 @jameslamb (#3611)\r\n- [ci] add credentials to gitignore @jameslamb (#3620)\r\n- [R-package] Update remaining internal function calls to use keyword arguments @zenggyu (#3617)\r\n- [R package] update lgb.Dataset.R to use keyword arguments @zenggyu (#3607)\r\n- [R-package] Update lgb.model.dt.tree.R to use keyword arguments @zenggyu (#3605)\r\n- [R-package] use keyword arguments for internal functions in utils.R @mfrasco6 (#3604)\r\n- [ci] remove unnecessary environment variables in R-package CI @jameslamb (#3602)\r\n- [R-package][tests] update values in valgrind test @StrikerRUS (#3600)\r\n- [refactor] Reduce code duplication in c_api.cpp @AlbertoEAF (#3539)\r\n- [refactor] SWIG - Split pointer manipulation to individual .i file @AlbertoEAF (#3538)\r\n- [ci] test 32-bit R in CI @jameslamb (#3588)\r\n- [ci] Fix missing git install in R artifact job (fixes #3567) @jameslamb (#3587)\r\n- [R-package] Remove CLI-only objects @jameslamb (#3566)\r\n- small R Docker cleanup @StrikerRUS (#3582)\r\n- [python] remove unnecessary files to reduce sdist size @jameslamb (#3579)\r\n- bump version for development @guolinke (#3568)\r\n- [ci] remove conda from R CI jobs @jameslamb (#3573)\r\n","2020-12-08T02:58:17",{"id":263,"version":264,"summary_zh":265,"released_at":266},171947,"v3.1.0","## Changes\r\n\r\n## 💡 New Features\r\n\r\n- Support deterministic  @guolinke (#3494)\r\n- Add support to optimize for NDCG at a given truncation level @metpavel (#3425)\r\n- Add support for cuda version less then 10.0 @shipengfei92 (#3431)\r\n- Updated network retry delay strategy to scale @aakarshg (#3306)\r\n- added new GPU docker files @StrikerRUS (#3408)\r\n- Average precision score @btrotta (#3347)\r\n- Advanced method monotone constraints @CharlesAuguste (#3264)\r\n- Build integrated Python package library @tpboudreau (#3144)\r\n- Add support for CUDA-based GPU @ChipKerchner (#3160)\r\n- [Python] Refactors scikit-learn API to allow a list of evaluation metrics @gramirezespinoza (#3254)\r\n- [R-package] added support for first_metric_only (fixes #2368) @jameslamb (#2912)\r\n- [python][sklearn] be compatible with check_is_fitted sklearn function @StrikerRUS (#3329)\r\n\r\n## 🔨 Breaking\r\n\r\n- [python] mark 3.1 version is the last one with Python 2 support @StrikerRUS (#3565)\r\n- bump minimal CMake version @StrikerRUS (#3501)\r\n- [R-package] Remove ability to install precompiled lib_lightgbm (fixes #3320) @jameslamb (#3360)\r\n- [python] Drop Python 3.5 support @StrikerRUS (#3395)\r\n\r\n## 🚀 Efficiency Improvement\r\n\r\n- Optimization of row-wise histogram construction @shiyu1994 (#3522)\r\n- Add support to optimize for NDCG at a given truncation level @metpavel (#3425)\r\n- fix address alignment, required by cran @guolinke (#3415)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- [ci] Use different PATH based on Rtools version @jameslamb (#3558)\r\n- [ci] fix CUDA CI builds @StrikerRUS (#3549)\r\n- fix constant hessian for huber objective  @guolinke (#3545)\r\n- [R-package] [ci] Fix failures with R 3.6 and CMake (fixes #3469) @jameslamb (#3541)\r\n- [R-package] fix learning-to-rank tests on Solaris @jameslamb (#3534)\r\n- [R-package] fix MM_PREFETCH and MM_MALLOC checks in configure.ac @jameslamb (#3510)\r\n- avoid min_data and min_hessian are zeros at the same time @guolinke (#3492)\r\n- Fix add features  @guolinke (#2754)\r\n- remove std::move @StrikerRUS (#3478)\r\n- [ci] [R-package] Fix memory leaks found by valgrind @jameslamb (#3443)\r\n- [R-package] Suppresses unknown pragma warnings during CRAN build @cctechwiz (#3460)\r\n- pin Ubuntu version in distroless docker file @StrikerRUS (#3449)\r\n- Move Tree destructor to header file @lcsdavid (#3417)\r\n- [R-package] miscellaneous changes to comply with CRAN requirements @jameslamb (#3338)\r\n- fix type casting warning @StrikerRUS (#3437)\r\n- [R-package] [ci] Make Windows CI fail if R CMD check fails @jameslamb (#3435)\r\n- [python] Use ctypes for parameters of DLL functions for Dataset @StrikerRUS (#3423)\r\n- Use ctypes to pass parameters (fixes #3398) @btrotta (#3419)\r\n- disable monotone constraint in objective functions with renew_tree_output @guolinke (#3368 \r\n- [R-package] Fix incorrect num_iterations, early_stopping_round in saved models (fixes #2208, #2468) @jameslamb (#3368)\r\n- Improve performance of path smoothing @btrotta (#3396)\r\n- fix sparse multiclass local feature contributions and add test @imatiach-msft (#3382)\r\n- Auc mu weights @btrotta (#3349)\r\n- improve subfeature_bynode @guolinke (#3384)\r\n- Fix typo in ResetConfig @btrotta (#3392)\r\n- Avoid segment fault in ResetConfig for GBDT in prediction (fix #3317) @shiyu1994 (#3373)\r\n\r\n## 📖 Documentation\r\n\r\n- [docs] simplify RTD config and use latest Sphinx @StrikerRUS (#3554)\r\n- Add note on LightGBM\u002FOpenMP hanging on AWS Batch @cvsmith (#3553)\r\n- Fix #2898: Clearer warning message for user (2^max_depth > num_leaves). @AlbertoEAF (#3537)\r\n- better document for bin_construct_sample_cnt @guolinke (#3521)\r\n- [R-package] [docs] fix broken plots in pkgdown site (fixes #3276) @jameslamb (#3508)\r\n- [docs] added Data Science Bowl Comp Solution 2019 @nabokovas (#3503)\r\n- [docs] fix param docs @StrikerRUS (#3495)\r\n- [docs] update GitHub Actions badge @StrikerRUS (#3446)\r\n- [docs] Change doc link to monotone constraints report to HAL document @CharlesAuguste (#3410)\r\n- [R-package] add new copyright holder in DESCRIPTION @jameslamb (#3409)\r\n- [docs] Simplify the python installation instruction @guolinke (#3378)\r\n- [docs] remove unrelated entry from winning solutions list @StrikerRUS (#3370)\r\n- [python][examples] updated examples with multiple custom metrics @StrikerRUS (#3367)\r\n- [docs] update list of winning solutions in data science competitions @Juniper-23 (#3358)\r\n- [R-package] fix typo in R installation instructions @daviddalpiaz (#3350)\r\n\r\n## 🧰 Maintenance\r\n\r\n- fix compilation warning @StrikerRUS (#3564)\r\n- fix warning @guolinke (#3563)\r\n- [R-package] fix install warning @jameslamb (#3552)\r\n- TST make sklearn integration test compatible with 0.24 @glemaitre (#3533)\r\n- move APPLE_OUTPUT_DYLIB option closer to the rest options @StrikerRUS (#3547)\r\n- [ci] simplify R CI scripts @jameslamb (#3535)\r\n- [ci] Make valgrind check stricter @jameslamb (#3536)\r\n- fix invalid read detected by valgrind @guolinke (#3526)\r\n- ignore files from local Dask work @jameslamb (#3527)\r\n- [ci] upgrade GitHub Actions third-party a","2020-11-16T04:25:19",{"id":268,"version":269,"summary_zh":270,"released_at":271},171948,"v3.0.0","## Changes\r\n\r\n## 💡 New Features\r\n\r\n- [python] add return_cvbooster flag to cv func and publish _CVBooster (#283,#2105,#1445) @momijiame (#3204)\r\n- [R-package] make package installable with CRAN toolchain (fixes #2960) @jameslamb (#3188)\r\n- feat: Change locking strategy of Booster, allow for share and unique locks @JoanFM (#2760)\r\n- feature importance type in saved model file @guolinke (#3220)\r\n- [R-package] Interface for interaction constraints @btrotta (#3136)\r\n- adding sparse support to TreeSHAP in lightgbm @imatiach-msft (#3000)\r\n- Adding static library option @dpayne (#3171)\r\n- Interaction constraints @btrotta (#3126)\r\n- [R-package] Add support for R 4.0 (fixes #3064, fixes #3024) @jameslamb (#3065)\r\n- [python][scikit-learn] add new attribute for used number of features @a-wozniakowski (#3129)\r\n- redirect log to python console @guolinke (#3090)\r\n- Path smoothing @btrotta (#2950)\r\n- [SWIG][mmlspark] allow allocating more than int max array @imatiach-msft (#2859)\r\n- Support UTF-8 characters in feature name again @henry0312 (#2976)\r\n- [python] Re-enable scikit-learn 0.22+ support @StrikerRUS (#2949)\r\n- Pr3 monotone constraints splits penalization @CharlesAuguste (#2939)\r\n- [R-package] adding routine registration in R package (fixes #1910) @jameslamb (#2911)\r\n- [R-package] Use Rprintf for logging in the R package (fixes #1440, fixes #1909) @jameslamb (#2901)\r\n- Improving monotone constraints (\"Fast\" method; linked to #2305, #2717)  @CharlesAuguste (#2770)\r\n- [python] handle RandomState object in Scikit-learn Api @lpfann (#2904)\r\n- Debug flags @guolinke (#2825)\r\n- added feature infos to JSON dump @StrikerRUS (#2660)\r\n- Add capability to get possible max and min values for a model @JoanFM (#2737)\r\n- Extremely randomized trees @btrotta (#2671)\r\n- [python] add property: feature_name_ in lgb sklearn api @zhangqibot (#2740)\r\n- Implementation of XE_NDCG_MART for the ranking task @sbruch (#2620)\r\n- [python] Output model to a pandas DataFrame @pford221 (#2592)\r\n- option to disable the shape checking in prediction. @guolinke (#2669)\r\n- added feature importance to JSON dump  @StrikerRUS (#2656)\r\n- [python] allow to specify orientation of a tree @StrikerRUS (#2605)\r\n- auc-mu @btrotta (#2567)\r\n- [python] Allow python sklearn interface's fit() to pass init_model to train() @aaiyer (#2447)\r\n- Add more debug logging to show data load progress. @ashok-ponnuswami-msft (#2587)\r\n\r\n## 🔨 Breaking\r\n\r\n- [Python] add start_iteration to python predict interface (#3058) @shiyu1994 (#3272)\r\n- [R-package] refactor and improvements to lgb.convert() functions (fixes #2678, #2681) @jameslamb (#3269)\r\n- [R-package] deprecate lgb.prepare() and lgb.prepare2() @jameslamb (#3095)\r\n- [R-package] Add version floor of R 3.5 (fixes #3212) @jameslamb (#3216)\r\n- refactor LGBM_DatasetGetFeatureNames @StrikerRUS (#3022)\r\n- Fix SWIG methods that return char** @AlbertoEAF (#2850)\r\n- Code refactoring for ranking objective & Faster ndcg_xendcg @guolinke (#2801)\r\n- decouple bagging with num_threads @guolinke (#2804)\r\n- remove init-score parameter  @guolinke (#2776)\r\n- [python] [R-package] refine the parameters for Dataset @guolinke (#2594)\r\n- Support both row-wise and col-wise multi-threading @guolinke (#2699)\r\n- [ci] indicate support only for the last 3 macOS versions in wheel name @StrikerRUS (#2691)\r\n- removed OpenMP ugly fix for Mojave @StrikerRUS (#2674)\r\n- [python] specify the last supported version of scikit-learn @StrikerRUS (#2637)\r\n\r\n## 🚀 Efficiency Improvement\r\n\r\n- Feat\u002Foptimize single prediction @AlbertoEAF (#2992)\r\n- Optimize the computation of the cross-entropy ranking loss @sbruch (#3080)\r\n- Speed-up \"Split\" and some code refactorings @guolinke (#2883)\r\n- speed up `FindBestThresholdFromHistogram`  @guolinke (#2867)\r\n- speed up for const hessian @guolinke (#2857)\r\n- reduce the overhead of OMP_NUM_THREADS in training @guolinke (#2852)\r\n- speed up multi-val bin subset for bagging @guolinke (#2827)\r\n- speed up sub-feature in row-wise parallelism @guolinke (#2764)\r\n- slightly reduce the cost of multi-val bin construct. @guolinke (#2728)\r\n- more efficient sampling k from n @guolinke (#2693)\r\n- support most frequent bin @guolinke (#2689)\r\n- prefetch hint (1.3x speed-up) @guolinke (#2677)\r\n\r\n## 🐛 Bug Fixes\r\n- [R] Fix 32-bit build @guolinke (#3307)\r\n- fix zero bin in categorical split @guolinke (#3305)\r\n- [R-package] DESCRIPTION changes to address CRAN feedback @jameslamb (#3298)\r\n- create buffer for gradients and hessians with goss and customized objective (fixes #3243) @shiyu1994 (#3263)\r\n- update multi-class objective (softmax) @guolinke (#3256)\r\n- Fast single row predict API v2 @AlbertoEAF (#3268)\r\n- [R-package] fix early_stopping_round \u003C= 0 @jameslamb (#3259)\r\n- fix bug in CEGB when reset training data or config @guolinke (#3246)\r\n- fix possible problem in getting number of columns from libsvm file. @guolinke (#3242)\r\n- set num_threads of share_state (#3151) @shiyu1994 (#3238)\r\n- Upcast index to size_t in Refit @jtilly (#3228)\r\n- [python][scikit","2020-09-01T03:26:21",{"id":273,"version":274,"summary_zh":275,"released_at":276},171949,"v3.0.0rc1","## Changes\r\n\r\n## 💡 New Features\r\n\r\n- [python] add return_cvbooster flag to cv func and publish _CVBooster (#283,#2105,#1445) @momijiame (#3204)\r\n- [R-package] make package installable with CRAN toolchain (fixes #2960) @jameslamb (#3188)\r\n- feat: Change locking strategy of Booster, allow for share and unique locks @JoanFM (#2760)\r\n- feature importance type in saved model file @guolinke (#3220)\r\n- [R-package] Interface for interaction constraints @btrotta (#3136)\r\n- adding sparse support to TreeSHAP in lightgbm @imatiach-msft (#3000)\r\n- Adding static library option @dpayne (#3171)\r\n- Interaction constraints @btrotta (#3126)\r\n- [R-package] Add support for R 4.0 (fixes #3064, fixes #3024) @jameslamb (#3065)\r\n- [python][scikit-learn] add new attribute for used number of features @a-wozniakowski (#3129)\r\n- redirect log to python console @guolinke (#3090)\r\n- Path smoothing @btrotta (#2950)\r\n- [SWIG][mmlspark] allow allocating more than int max array @imatiach-msft (#2859)\r\n- Support UTF-8 characters in feature name again @henry0312 (#2976)\r\n- [python] Re-enable scikit-learn 0.22+ support @StrikerRUS (#2949)\r\n- Pr3 monotone constraints splits penalization @CharlesAuguste (#2939)\r\n- [R-package] adding routine registration in R package (fixes #1910) @jameslamb (#2911)\r\n- [R-package] Use Rprintf for logging in the R package (fixes #1440, fixes #1909) @jameslamb (#2901)\r\n- Improving monotone constraints (\"Fast\" method; linked to #2305, #2717)  @CharlesAuguste (#2770)\r\n- [python] handle RandomState object in Scikit-learn Api @lpfann (#2904)\r\n- Debug flags @guolinke (#2825)\r\n- added feature infos to JSON dump @StrikerRUS (#2660)\r\n- Add capability to get possible max and min values for a model @JoanFM (#2737)\r\n- Extremely randomized trees @btrotta (#2671)\r\n- [python] add property: feature_name_ in lgb sklearn api @zhangqibot (#2740)\r\n- Implementation of XE_NDCG_MART for the ranking task @sbruch (#2620)\r\n- [python] Output model to a pandas DataFrame @pford221 (#2592)\r\n- option to disable the shape checking in prediction. @guolinke (#2669)\r\n- added feature importance to JSON dump  @StrikerRUS (#2656)\r\n- [python] allow to specify orientation of a tree @StrikerRUS (#2605)\r\n- auc-mu @btrotta (#2567)\r\n- [python] Allow python sklearn interface's fit() to pass init_model to train() @aaiyer (#2447)\r\n- Add more debug logging to show data load progress. @ashok-ponnuswami-msft (#2587)\r\n\r\n## 🔨 Breaking\r\n\r\n- [Python] add start_iteration to python predict interface (#3058) @shiyu1994 (#3272)\r\n- [R-package] refactor and improvements to lgb.convert() functions (fixes #2678, #2681) @jameslamb (#3269)\r\n- [R-package] deprecate lgb.prepare() and lgb.prepare2() @jameslamb (#3095)\r\n- [R-package] Add version floor of R 3.5 (fixes #3212) @jameslamb (#3216)\r\n- refactor LGBM_DatasetGetFeatureNames @StrikerRUS (#3022)\r\n- Fix SWIG methods that return char** @AlbertoEAF (#2850)\r\n- Code refactoring for ranking objective & Faster ndcg_xendcg @guolinke (#2801)\r\n- decouple bagging with num_threads @guolinke (#2804)\r\n- remove init-score parameter  @guolinke (#2776)\r\n- [python] [R-package] refine the parameters for Dataset @guolinke (#2594)\r\n- Support both row-wise and col-wise multi-threading @guolinke (#2699)\r\n- [ci] indicate support only for the last 3 macOS versions in wheel name @StrikerRUS (#2691)\r\n- removed OpenMP ugly fix for Mojave @StrikerRUS (#2674)\r\n- [python] specify the last supported version of scikit-learn @StrikerRUS (#2637)\r\n\r\n## 🚀 Efficiency Improvement\r\n\r\n- Feat\u002Foptimize single prediction @AlbertoEAF (#2992)\r\n- Optimize the computation of the cross-entropy ranking loss @sbruch (#3080)\r\n- Speed-up \"Split\" and some code refactorings @guolinke (#2883)\r\n- speed up `FindBestThresholdFromHistogram`  @guolinke (#2867)\r\n- speed up for const hessian @guolinke (#2857)\r\n- reduce the overhead of OMP_NUM_THREADS in training @guolinke (#2852)\r\n- speed up multi-val bin subset for bagging @guolinke (#2827)\r\n- speed up sub-feature in row-wise parallelism @guolinke (#2764)\r\n- slightly reduce the cost of multi-val bin construct. @guolinke (#2728)\r\n- more efficient sampling k from n @guolinke (#2693)\r\n- support most frequent bin @guolinke (#2689)\r\n- prefetch hint (1.3x speed-up) @guolinke (#2677)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- create buffer for gradients and hessians with goss and customized objective (fixes #3243) @shiyu1994 (#3263)\r\n- update multi-class objective (softmax) @guolinke (#3256)\r\n- Fast single row predict API v2 @AlbertoEAF (#3268)\r\n- [R-package] fix early_stopping_round \u003C= 0 @jameslamb (#3259)\r\n- fix bug in CEGB when reset training data or config @guolinke (#3246)\r\n- fix possible problem in getting number of columns from libsvm file. @guolinke (#3242)\r\n- set num_threads of share_state (#3151) @shiyu1994 (#3238)\r\n- Upcast index to size_t in Refit @jtilly (#3228)\r\n- [python][scikit-learn] Fixes a bug that prevented using multiple eval_metrics in LGBMClassifier @gramirezespinoza (#3222)\r\n- [python] fix early_stopping_round = 0 @guolinke (#3211)\r\n- Fix i","2020-08-07T01:25:31",{"id":278,"version":279,"summary_zh":280,"released_at":281},171950,"v2.3.1","\r\n\r\n## Changes:\r\n\r\n* 471d0aaaaa8574b9a1da2302e992f61b01e3d155 update release date for R-package\r\n* 102893a11c1dd712bb70d87b3b129ddf42daf06f [R-package] fixed minor issues with tests and documentation (#2581)\r\n* 16c551c13d49c03fd4d871418257b1d89569d95b [docs] updated instructions in examples to match ones from ranking example (#2585)\r\n* 49df9e60d742ca7be8a7aad65f9a6b2519883819 [docs] Update LambdaRank example documentation (#2548)\r\n* 6a3e27df0348a727c5b02a18b13579129da01102 Avoid the issue is labeled to bug by default.\r\n* a6ba859ed5ec19e8af0704c1b9ab7c65684b3f35 [R-package] fixed parameter-name typo in lgb.cv() (#2576)\r\n* 1f7b06b98391395b6fd2f0bd7937353254718956 [R-package][ci] Added more R linters (fixes #2477) (#2533)\r\n* 11f9682bb72dea34313758f054ccf37886dc7e6e Fix build error when HDFS is enabled. (#2540)\r\n* 26ff099ab47cd98f7613503ff5976f7359e3465b explicitly import `std::max` from \u003Calgorithm> (#2562)\r\n* a8dc03250e235a00baf3ecefe4155023624dd239 [ci] fixed cpplint warning about parenthesis placement (#2563)\r\n\u003Cdetails>\u003Csummary>\u003Cb>See More\u003C\u002Fb>\u003C\u002Fsummary>\r\n\r\n* 41c366ee6b69571202ffbdca5965219cb6cf0ac4 [R-package] [ci] pin roxygen2 version for RTD (#2568)\r\n* cf8c8c0b9bdedb9c0226123b6d0d716da108e3be Fix detecting alias of objective in loading from model strings (#2565) [ #2564 ]\r\n* 3e3d76f64bfa3d95f9769bd82be7124158ff3df7 [Java] MMLSPARK-ISSUE-720 - Create SWIG version of BoosterDumpModel that returns string to be used in Java (#2560)\r\n* 7feaaefb5b730524d12449e48d93a862a668a024 [docs][docker] cleaned up CODEOWNERS and fixed build warning in dockerfile-python (#2555)\r\n* 31bec2fb3dd7f20ea995734bace8b378467949b8 addressed linting items about empty statements (#2545)\r\n* a94275120f37e3bbb74d63f50a6838b8926c7fec [R-package] removed unnecessary Suggests dependencies (#2543)\r\n* b2da19b88df1a8d014a9e1b46086e2def20ad4d8 check feature names for special JSON chars (#2557)\r\n* 83ecb38600e99fb017c51af805b32b13f262d764 [docker] install ca certificates package on ubuntu image (#2554)\r\n* 76bda1e25740d79d03aadbaeba5aecd0551bde6c support Catalina (#2556)\r\n* 785e477856b9e9e9e69123caf175dbb8455c3b11 [ci] removed temp fix for Graphviz from conda (#2551)\r\n* 7cfb492e7733f73526fbf8958d850bbb94af83ed [ci][R-package] removed outdated comment in lint_r_code.R (#2541)\r\n* 516bd37a28a0dfa7c2bc4a24587dbbcb8a697eb2 renamed variables from bias to offset (#2539)\r\n* bd7e1842042ff38dfe3f89e67021479cf2d21f0d [docs] refactored News section in README (#2529)\r\n* a36eb7e76f7ff6e80358aabfd2b6f1b2c04ad41d remove many vector.at()\r\n* 8f7199a44b290a13e8b4a82eb45f7389785c26fe [docs] update MS-MPI link (#2528)\r\n* 1f1dc4521e2556f79664274b61da0e2d78325964 [tests][python] refined python tests (#2483)\r\n* 00d1e6938a3f8566526d470057f8d26ec1289208 [python] removed unused pylint directives (#2466)\r\n* f1d4e449b7f7b8b20fa04b694a976961f81a3728 fixed casting warning (#2523)\r\n* 85be04a62a961ed8f1a4012d6480e3b2c986880a [R-package] Disabled early stopping when using 'dart' boosting strategy (#2443)\r\n* fc991c9d7e07fd8e460ea24d1f5609f61fd2af3f [R-package] added R linting and changed R code to comma-first (fixes #2373) (#2437)\r\n* b4bb38d9267ccc966f0bb8cdd6e2eece2b4c08e3 [R-package] Added unit tests (#2498)\r\n* bdc310a8a4860772327aae539eff30f9db8fd673 [R-package] Sort indices in lgb.cv() (fixes #2503) #2524\r\n* 44b0acacb2ddcd25482c6002e9ed68ce4a711c91 [ci] removed temp fix #2522\r\n* 5dcd4be924b54dfa36bd564338a4199e61bb17ed [python] handle params aliases centralized (#2489)\r\n* fbf95687adfe1518bfff722bced1cd5d1c30cb54 [ci] reduced number of commits cloned to CI environments (#2495)\r\n* 465d1262eb1d8eb3cfa7cc505140c035e52c8118 check sorted indices in Subset (#2510)\r\n* 198d0f3bf1d7f183aabaa6ee7d9cc145dd944dcc [docs] added m2cgen in README (#2512)\r\n* 72027036a978e0f455304ae9963b7bf3b9c2eb4c [docs] removed misleading section about pep8 in python's readme (#2507)\r\n* 2c3ebd94dc959259ebb3703737e6029d77b63b30 [ci] miniconda installer hotfix (#2511)\r\n* b1c50d07cee4f6042a5d50c2c92ca81b321b000b [docs] added logos to badges (#2506)\r\n* 40e56ca7aea0d385c149ff3da4cad7067221df38 reduce the buffer when using high dimensional data in distributed mode. (#2485)\r\n* 4848776fb1940adb4423ba27d7c152bba06cd9cf [docs] clarified support of LibSVM zero-based format files (#2504)\r\n* b0500dde9a108701623cb80ef5e92006aca35c10 [python] DPI arg in plotting functions (#2491)\r\n* dc5840709909bc18df437cddf62677f7be2915a4 fix bug in parser\r\n* fdb39237f69ea82091d27d2504da08abd323b4dc updated dockers (#2459)\r\n* d7f8aa53b8be5212887e97e474c90bc5d8beac19 [docs] fixed miscellaneous typos in comments and documentation (#2496)\r\n* ff4e48ce53f20f8546d7067b6804810ca5f79c07 reworked GitHub issue templates (#2492)\r\n* 780a3fdf2fd06c39c3d93230bce99c3d4174fd17 [ci] removed temp fix for missing package  (#2493)\r\n* dee72159d36a66d72372ec7fa783d1682eef1411 check the shape for mat, csr and csc in prediction (#2464)\r\n* dc65e0ac6ee8faa5790263a8dc2d9cc2a8dd7c4b [ci] fixed whitespace cpplint issue in auto-config (#2488)\r\n* 67099ff8a79681a1965160efcb","2019-11-28T13:21:02"]