scikit-learn

GitHub
65.6k 26.9k 非常简单 51 次阅读 今天BSD-3-Clause开发框架其他数据工具
AI 解读 由 AI 自动生成,仅供参考

scikit-learn 是一个基于 Python 构建的开源机器学习库,依托于 SciPy、NumPy 等科学计算生态,旨在让机器学习变得简单高效。它提供了一套统一且简洁的接口,涵盖了从数据预处理、特征工程到模型训练、评估及选择的全流程工具,内置了包括线性回归、支持向量机、随机森林、聚类等在内的丰富经典算法。

对于希望快速验证想法或构建原型的数据科学家、研究人员以及 Python 开发者而言,scikit-learn 是不可或缺的基础设施。它有效解决了机器学习入门门槛高、算法实现复杂以及不同模型间调用方式不统一的痛点,让用户无需重复造轮子,只需几行代码即可调用成熟的算法解决分类、回归、聚类等实际问题。

其核心技术亮点在于高度一致的 API 设计风格,所有估算器(Estimator)均遵循相同的调用逻辑,极大地降低了学习成本并提升了代码的可读性与可维护性。此外,它还提供了强大的模型选择与评估工具,如交叉验证和网格搜索,帮助用户系统地优化模型性能。作为一个由全球志愿者共同维护的成熟项目,scikit-learn 以其稳定性、详尽的文档和活跃的社区支持,成为连接理论学习与工业级应用的最佳桥梁。

使用场景

某电商公司的数据分析师需要基于用户历史行为数据,快速构建一个模型来预测哪些用户会在下个月流失,以便运营团队及时干预。

没有 scikit-learn 时

  • 算法实现困难:工程师需从零编写逻辑回归或随机森林的数学公式与梯度下降代码,极易出错且耗时数周。
  • 流程割裂繁琐:数据清洗、特征标准化、模型训练和评估分散在不同脚本中,缺乏统一接口,导致代码难以维护。
  • 调参效率低下:缺乏内置的网格搜索(Grid Search)工具,手动尝试不同参数组合如同“大海捞针”,严重拖慢迭代速度。
  • 结果复现性差:由于缺少标准化的预处理管道(Pipeline),每次实验环境微小变动都可能导致模型效果波动,难以向业务方交付稳定结果。

使用 scikit-learn 后

  • 开箱即用算法:直接调用 RandomForestClassifier 等成熟模块,几行代码即可加载高性能算法,将开发周期从数周缩短至几小时。
  • 统一工作流:利用 Pipeline 将数据标准化与模型训练串联,确保处理逻辑一致,代码结构清晰且易于扩展。
  • 自动化调优:通过 GridSearchCV 自动遍历最佳参数组合,并自带交叉验证功能,显著提升模型准确率与泛化能力。
  • 标准化评估:内置丰富的评估指标(如 ROC 曲线、混淆矩阵)和可视化工具,一键生成专业报告,让业务决策更有据可依。

scikit-learn 将复杂的机器学习工程简化为标准的模块化操作,让团队能专注于业务洞察而非底层算法实现。

运行环境要求

操作系统
  • 未说明
GPU

不需要 GPU

内存

未说明

依赖
notes绘图功能需要 Matplotlib>=3.6.1;运行部分示例可能需要 scikit-image>=0.22.0、pandas>=1.5.0、seaborn>=0.13.0 或 Plotly>=5.18.0。测试需 pytest>=7.1.2。推荐使用 pip 或 conda 安装。
python3.11+
NumPy>=1.24.1
SciPy>=1.10.0
joblib>=1.3.0
threadpoolctl>=3.2.0
scikit-learn hero image

快速开始

.. -- mode: rst --

|GitHubActions| |Codecov| |CircleCI| |Nightly wheels| |Ruff| |PythonVersion| |PyPI| |DOI| |Benchmark|

.. |GitHubActions| image:: https://github.com/scikit-learn/scikit-learn/actions/workflows/unit-tests.yml/badge.svg :target: https://github.com/scikit-learn/scikit-learn/actions/workflows/unit-tests.yml?query=branch%3Amain

.. |CircleCI| image:: https://circleci.com/gh/scikit-learn/scikit-learn/tree/main.svg?style=shield :target: https://circleci.com/gh/scikit-learn/scikit-learn

.. |Codecov| image:: https://codecov.io/gh/scikit-learn/scikit-learn/branch/main/graph/badge.svg?token=Pk8G9gg3y9 :target: https://codecov.io/gh/scikit-learn/scikit-learn

.. |Nightly wheels| image:: https://github.com/scikit-learn/scikit-learn/actions/workflows/wheels.yml/badge.svg?event=schedule :target: https://github.com/scikit-learn/scikit-learn/actions?query=workflow%3A%22Wheel+builder%22+event%3Aschedule

.. |Ruff| image:: https://img.shields.io/badge/code%20style-ruff-000000.svg :target: https://github.com/astral-sh/ruff

.. |PythonVersion| image:: https://img.shields.io/pypi/pyversions/scikit-learn.svg :target: https://pypi.org/project/scikit-learn/

.. |PyPI| image:: https://img.shields.io/pypi/v/scikit-learn :target: https://pypi.org/project/scikit-learn

.. |DOI| image:: https://zenodo.org/badge/21369/scikit-learn/scikit-learn.svg :target: https://zenodo.org/badge/latestdoi/21369/scikit-learn/scikit-learn

.. |Benchmark| image:: https://img.shields.io/badge/Benchmarked%20by-asv-blue :target: https://scikit-learn.org/scikit-learn-benchmarks

.. |PythonMinVersion| replace:: 3.11 .. |NumPyMinVersion| replace:: 1.24.1 .. |SciPyMinVersion| replace:: 1.10.0 .. |JoblibMinVersion| replace:: 1.3.0 .. |ThreadpoolctlMinVersion| replace:: 3.2.0 .. |MatplotlibMinVersion| replace:: 3.6.1 .. |Scikit-ImageMinVersion| replace:: 0.22.0 .. |PandasMinVersion| replace:: 1.5.0 .. |SeabornMinVersion| replace:: 0.13.0 .. |PytestMinVersion| replace:: 7.1.2 .. |PlotlyMinVersion| replace:: 5.18.0

.. image:: https://raw.githubusercontent.com/scikit-learn/scikit-learn/main/doc/logos/scikit-learn-logo.png :target: https://scikit-learn.org/

scikit-learn 是一个基于 SciPy 构建的 Python 机器学习模块,采用 3 条款 BSD 许可证进行分发。

该项目于 2007 年由 David Cournapeau 作为 Google Summer of Code 项目启动,此后吸引了众多志愿者参与贡献。核心贡献者名单请参见 关于我们 <https://scikit-learn.org/dev/about.html#authors>__ 页面。

目前,scikit-learn 由一群志愿者维护。

官网:https://scikit-learn.org

安装

依赖项


scikit-learn 需要以下依赖:

- Python (>= |PythonMinVersion|)
- NumPy (>= |NumPyMinVersion|)
- SciPy (>= |SciPyMinVersion|)
- joblib (>= |JoblibMinVersion|)
- threadpoolctl (>= |ThreadpoolctlMinVersion|)

=======

scikit-learn 的绘图功能(即以 ``plot_`` 开头的函数和以 ``Display`` 结尾的类)需要 Matplotlib (>= |MatplotlibMinVersion|)。运行示例时,同样需要 Matplotlib >= |MatplotlibMinVersion|。部分示例还要求 scikit-image >= |Scikit-ImageMinVersion|、pandas >= |PandasMinVersion|、seaborn >= |SeabornMinVersion| 以及 Plotly >= |PlotlyMinVersion|。

用户安装

如果您已经安装了可用的 NumPy 和 SciPy,最简单的安装方式是使用 pip::

pip install -U scikit-learn

或者使用 conda::

conda install -c conda-forge scikit-learn

更多详细的安装说明,请参阅文档:https://scikit-learn.org/stable/install.html

变更日志

有关 scikit-learn 的重要变更历史,请参阅 变更日志 <https://scikit-learn.org/dev/whats_new.html>__。

开发

我们欢迎所有经验水平的新贡献者。scikit-learn 社区的目标是提供帮助、友好且高效的工作环境。开发指南 <https://scikit-learn.org/stable/developers/index.html>_ 提供了关于代码、文档、测试等方面贡献的详细信息。本 README 中也包含了一些基本信息。

重要链接


- 官方源码仓库:https://github.com/scikit-learn/scikit-learn
- 发布版本下载:https://pypi.org/project/scikit-learn/
- 问题追踪器:https://github.com/scikit-learn/scikit-learn/issues

源码
~~~~

您可以通过以下命令获取最新源码:

    git clone https://github.com/scikit-learn/scikit-learn.git

贡献
~~~~

如需了解更多关于如何为 scikit-learn 做出贡献的信息,请参阅我们的 `贡献指南 <https://scikit-learn.org/dev/developers/contributing.html>`_。

测试
~~~~

安装完成后,您可以在源码目录外运行测试套件(需安装 pytest >= |PytestMinVersion|):

    pytest sklearn

更多信息请访问:https://scikit-learn.org/dev/developers/contributing.html#testing-and-improving-test-coverage

在测试过程中,可以通过设置环境变量 ``SKLEARN_SEED`` 来控制随机数生成。

提交 Pull Request

在打开 Pull Request 之前,请务必查看完整的贡献页面,确保您的代码符合我们的指南:https://scikit-learn.org/stable/developers/index.html

项目历史

该项目于 2007 年由 David Cournapeau 作为 Google Summer of Code 项目启动,此后吸引了众多志愿者参与贡献。核心贡献者名单请参见 关于我们 <https://scikit-learn.org/dev/about.html#authors>__ 页面。

目前,该项目由一组志愿者维护。

注意scikit-learn 曾被称为 scikits.learn

帮助与支持

文档


- HTML 文档(稳定版):https://scikit-learn.org
- HTML 文档(开发版):https://scikit-learn.org/dev/
- 常见问题解答:https://scikit-learn.org/stable/faq.html

沟通

主要渠道 ^^^^^^^^

开发者与支持 ^^^^^^^^^^^^^^^

社交媒体平台 ^^^^^^^^^^^^^^

资源 ^^^^^^^^^

引用


如果您在科学出版物中使用了 scikit-learn,我们非常感谢您进行引用:https://scikit-learn.org/stable/about.html#citing-scikit-learn

版本历史

1.8.02025/12/10
1.7.22025/09/09
1.7.12025/07/18
1.7.02025/06/06
1.6.12025/01/10
1.6.02024/12/09
1.5.22024/09/11
1.5.12024/07/03
1.5.02024/05/21
1.4.22024/04/09
1.4.1.post12024/02/15
1.4.12024/02/14
1.4.0-12024/01/19
1.3.22023/10/25
1.3.12023/09/20
1.3.02023/06/30
1.2.22023/03/09
1.2.12023/01/24
1.2.02022/12/08
1.1.32022/10/26

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架