Scikit-learn 在 Python 中常被导入为 sklearn,它是执行机器学习任务的核心库。这是一个开源项目,意味着它可以免费获取并由社区协作开发。它的主要目标是提供简单高效的预测性数据分析工具,这些工具对所有人可用,并可在多种情境下重复使用。Scikit-learn 构建于 Python 科学计算体系之上,能与 NumPy(用于数值运算)和 Pandas(用于数据处理)等其他常用库良好配合。可以将 Scikit-learn 视为 Python 数据科学生态系统中的特定层。最底层是 Python 本身。在此之上,NumPy 提供了基本的 N 维数组对象和运算,SciPy 则提供更专业的科学和技术计算例程。Scikit-learn 大量依赖这些底层库,特别是 NumPy 数组,以实现其数据结构和高效计算。它专门专注于提供机器学习所需的算法和工具,而非 NumPy 的通用数值计算功能或 SciPy 更广泛的科学功能。通常,Matplotlib 或 Seaborn 等库会与 Scikit-learn 一起用于数据和模型结果的可视化。digraph G { rankdir="TB"; node [shape=box, style="filled", fontname="Arial", fontsize=10, margin=0.1]; edge [arrowsize=0.7]; subgraph cluster_core { label = "Python 核心"; style=filled; color="#e9ecef"; Python [label="Python 语言", fillcolor="#a5d8ff"]; } subgraph cluster_scientific { label = "科学计算栈"; style=filled; color="#e9ecef"; NumPy [label="NumPy\n(数组, 线性代数)", fillcolor="#bac8ff"]; SciPy [label="SciPy\n(科学函数)", fillcolor="#bac8ff"]; Pandas [label="Pandas\n(数据帧)", fillcolor="#bac8ff"]; } subgraph cluster_ml { label = "机器学习"; style=filled; color="#e9ecef"; Sklearn [label="Scikit-learn\n(机器学习算法, 流水线)", fillcolor="#96f2d7", shape=box, style="filled,rounded"]; } subgraph cluster_viz { label = "可视化"; style=filled; color="#e9ecef"; Matplotlib [label="Matplotlib", fillcolor="#ffd8a8"]; Seaborn [label="Seaborn", fillcolor="#ffd8a8"]; } Python -> NumPy; Python -> SciPy; Python -> Pandas; NumPy -> SciPy; NumPy -> Pandas; NumPy -> Sklearn; SciPy -> Sklearn; Pandas -> Sklearn [style=dashed]; // 常用于输入数据 Sklearn -> Matplotlib [style=dashed]; Sklearn -> Seaborn [style=dashed]; Pandas -> Matplotlib [style=dashed]; Pandas -> Seaborn [style=dashed]; Matplotlib -> Seaborn; }Scikit-learn 在常见 Python 数据科学生态系统中的定位,它构建于 NumPy 和 SciPy 之上,常与 Pandas 一起用于数据输入,并与 Matplotlib/Seaborn 一起用于可视化。虚线表示常见的使用模式而非严格的依赖关系。Scikit-learn 之所以高效且受欢迎,原因在于其多项设计原则:一致性: 它具有非常一致的应用程序编程接口(API)。无论是使用线性回归模型、支持向量机,还是像缩放器这样的预处理工具,实例化、拟合(训练)和使用这些对象的方式都遵循可预测的模式。我们将在后续章节中研究核心 API 组件(估计器、预测器、转换器)。这种一致性大大降低了学习不同算法的难度。简单与高效: 该库优先考虑易用性而不牺牲性能。许多核心算法的内部实现都使用了优化代码(通常是 Cython 或 C),这使得它们在合理规模的数据集上计算高效。功能全面: Scikit-learn 提供了广泛的机器学习任务实现,包括:分类: 识别对象所属的类别。回归: 预测与对象关联的连续值属性。聚类: 将相似对象自动分组。降维: 减少需要考虑的随机变量数量,以提高计算效率或避免维度灾难。模型选择: 比较、验证和选择参数及模型。预处理: 特征提取和归一化。开源与社区驱动: 作为遵循宽松 BSD 许可证的开源项目,它促进了在学术研究和商业应用中的广泛采用。它得益于庞大活跃的用户社区和专注的开发团队,后者持续改进和维护该库。Scikit-learn 专为需要将机器学习算法应用于数据的开发者、数据科学家和研究人员设计。开始使用它并不要求您掌握每个算法的深奥数学细节,尽管理解其基本原理对有效应用总是有好处的。在本课程中,我们将广泛地使用 Scikit-learn 来加载数据、预处理、训练各种监督学习模型(如回归和分类)、评估它们的性能,并使用流水线构建高效的工作流。本章旨在帮助您完成设置,并熟悉该库的基本结构和约定。