scikit-learn/scikit-learn
Star66.8K Fork27.2K 最后更新2026-07-31

Scikit-learn(简称 sklearn)是 Python 生态中最流行的机器学习库之一,涵盖分类、回归、聚类、降维、模型选择、数据预处理等常见任务。它过一致的 API 设计使不同算法的使用方式高度统一,大大降低了学习和开发成本,是机器学习入门、教学和实际项目开发中最常用的开源库之一。

仓库简介#

Scikit-learn 项目始于 2007 年,最初由 David Cournapeau 发起,随后 Matthieu Brucher 加入开发。2010 年,来自 INRIA(法国国家信息与自动化研究院)Fabian PedregosaGaël VaroquauxAlexandre GramfortVincent Michel 接手项目,并于 2010 年 2 月 1 日发布了首个公开版本。此后,项目保持约每 3 个月发布一个新版本的节奏,在全球开发者社区的共同推动下不断发展壮大,现已成为 Python 生态中最具影响力的传统机器学习开源项目之一。

Scikit-learn 它以统一的 fit / predict / transform API 设计、完善的文档和稳定的实现著称, 是入门机器学习学习与基线建模的首选。

适用人群#

  • 机器学习初学者:提供统一且易于理解的 API,是学习传统机器学习算法的最佳入门工具之一。
  • 数据分析师:可快速完成数据预处理、特征工程、模型训练与评估,提高数据分析和预测建模效率。
  • 算法工程师:内置丰富的机器学习算法和模型选择工具,适用于模型开发、实验验证和性能优化。
  • 科研人员与教育工作者:拥有完善的文档、丰富的示例和稳定的接口,广泛应用于学术研究、课程教学和实验演示。

使用方式#

pip install scikit-learn

最小示例(随机森林分类):

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
clf = RandomForestClassifier(n_estimators=100, random_state=0)
clf.fit(X_train, y_train)
print(clf.score(X_test, y_test))

六大模块速览#

scikit-learn 官方主页把整个库的能力浓缩为 6 个核心模块,每个模块对应一类典型任务与一组算法。下面把它们与本站教程一一对应,方便按「任务视角」快速定位学习入口。本站没有的部分请直接参照「原站主页」

模块 · 任务 · 典型算法 本站对应教程·原理讲解·代码实现
Classification(分类):识别对象所属的离散类别。
应用:垃圾邮件检测、图像识别。
典型算法Gradient boostingK 近邻随机森林逻辑回归 等。
Classification 分类示例图
第3.1节 逻辑回归原理与建模
第3.3节 分类评估指标:准确率、召回率与 F-score
第4.6节 手写体识别实战
第5.5节 K 近邻原理与 sklearn 实战
第7.1节 朴素贝叶斯原理与高斯、多项式贝叶斯
第8.3节 决策树原理与生成
第9.1节 集成学习与提升算法
第9.2节 随机森林原理
第10.3节 支持向量机原理
Regression(回归):预测对象关联的连续值属性。
应用:药物反应预测、股价预测。
典型算法Gradient boostingK 近邻回归随机森林Ridge 回归 等。
Regression 回归示例图
第2.1节 线性回归原理与求解
第2.2节 多变量线性回归与 sklearn 实战
第2.3节 多项式回归与非线性拟合
第2.5节 梯度下降推导:线性回归参数迭代求解
第2.4节 回归评估指标:MSE、RMSE、R2 与误差分析
第4.4节 L1/L2 正则化原理:权重衰减与过拟合抑制
Clustering(聚类):把相似对象自动划分到同一组。
应用:客户分群、实验结果归类。
典型算法K-MeansDBSCAN层次聚类 等。
Clustering 聚类示例图
第11.1节 聚类分析基础
第11.2节 KMeans 原理:聚类分析中的经典算法
第11.3节 KMeans 求解过程:迭代更新与聚类收敛
第11.4节 从零实现 KMeans 聚类算法
第11.5节 KMeans++ 初始化策略
第11.6节 聚类外部评价指标:准确率、NMI 与 ARI
第11.7节 加权 KMeans 聚类算法
第11.8节 聚类内部评价指标:轮廓系数等
第11.9节 KMeans K 值选取:肘部法与轮廓系数
第11.11节 层次聚类:聚类树构建与结果分析
第11.10节 DBSCAN 基于密度的聚类算法
Dimensionality reduction(降维):减少需要考虑的随机变量个数。
应用:高维数据可视化、提升计算效率。
典型算法PCA特征选择非负矩阵分解 NMF 等。
Dimensionality reduction 降维示例图
第12.1节 PCA 原理:主成分分析的降维思想与步骤
第12.2节 核主成分分析 KPCA:原理与非线性降维
Model selection(模型选择) 比较、验证并选择参数与模型。
应用:通过调参提升模型准确率。
典型算法网格搜索 GridSearch交叉验证评估指标 等。
Model selection 模型选择示例图
第4.1节 模型泛化基础:过拟合、欠拟合与泛化误差
第4.3节 过拟合处理方法:常见原因与正则化
第4.4节 L1/L2 正则化原理:权重衰减与过拟合抑制
第4.5节 偏差方差与交叉验证
第4.6节 手写体识别实战:模型改善与泛化
Preprocessing(预处理) 特征提取与归一化。
应用:把文本等原始数据转换为算法可用的数值特征。
典型算法预处理模块特征提取 等。
Preprocessing 预处理示例图
第4.2节 特征标准化:归一化与标准化的原理及实现
第6.1节 词袋模型原理:文本特征表示与机器学习建模
第6.3节 TF-IDF 词袋模型:带权文本特征表示方法
第6.4节 词云图生成:文本特征分析与可视化

相关链接#