用户指南# 1. 有监督学习 1.1. 线性模型 1.1.1. 普通最小二乘法 1.1.2. 岭回归和分类 1.1.3. Lasso 1.1.4. 多任务 Lasso 1.1.5. Elastic-Net 1.1.6. 多任务 Elastic-Net 1.1.7. 最小角回归 1.1.8. LARS Lasso 1.1.9. 正交匹配追踪 (OMP) 1.1.10. 贝叶斯回归 1.1.11. 逻辑回归 1.1.12. 广义线性模型 1.1.13. 随机梯度下降 - SGD 1.1.14. 鲁棒回归:离群点和建模误差 1.1.15. 分位数回归 1.1.16. 多项式回归:使用基函数扩展线性模型 1.2. 线性判别分析和二次判别分析 1.2.1. 使用线性判别分析进行降维 1.2.2. LDA 和 QDA 分类器的数学公式 1.2.3. LDA 降维的数学公式 1.2.4. 收缩和协方差估计器 1.2.5. 估计算法 1.3. 核岭回归 1.4. 支持向量机 1.4.1. 分类 1.4.2. 回归 1.4.3. 密度估计、新颖性检测 1.4.4. 复杂度 1.4.5. 实用技巧 1.4.6. 核函数 1.4.7. 数学公式 1.4.8. 实现细节 1.5. 随机梯度下降 1.5.1. 分类 1.5.2. 回归 1.5.3. 在线一类支持向量机 1.5.4. 稀疏数据的随机梯度下降 1.5.5. 复杂度 1.5.6. 停止准则 1.5.7. 实用技巧 1.5.8. 数学公式 1.5.9. 实现细节 1.6. K近邻 1.6.1. 无监督 K近邻 1.6.2. K近邻分类 1.6.3. K近邻回归 1.6.4. K近邻算法 1.6.5. 最近质心分类器 1.6.6. K近邻转换器 1.6.7. 邻域成分分析 1.7. 高斯过程 1.7.1. 高斯过程回归 (GPR) 1.7.2. 高斯过程分类 (GPC) 1.7.3. GPC 示例 1.7.4. 高斯过程的核函数 1.8. 交叉分解 1.8.1. PLSCanonical 1.8.2. PLSSVD 1.8.3. PLSRegression 1.8.4. 典型相关分析 1.9. 朴素贝叶斯 1.9.1. 高斯朴素贝叶斯 1.9.2. 多项式朴素贝叶斯 1.9.3. 补充朴素贝叶斯 1.9.4. 伯努利朴素贝叶斯 1.9.5. 分类朴素贝叶斯 1.9.6. 核外朴素贝叶斯模型拟合 1.10. 决策树 1.10.1. 分类 1.10.2. 回归 1.10.3. 多输出问题 1.10.4. 复杂度 1.10.5. 实用技巧 1.10.6. 树算法:ID3、C4.5、C5.0 和 CART 1.10.7. 数学公式 1.10.8. 缺失值支持 1.10.9. 最小代价-复杂度剪枝 1.11. 集成方法:梯度提升、随机森林、bagging、投票、堆叠 1.11.1. 梯度提升树 1.11.2. 随机森林和其他随机树集成 1.11.3. Bagging 元估计器 1.11.4. 投票分类器 1.11.5. 投票回归器 1.11.6. 堆叠泛化 1.11.7. AdaBoost 1.12. 多类别和多输出算法 1.12.1. 多类别分类 1.12.2. 多标签分类 1.12.3. 多类别-多输出分类 1.12.4. 多输出回归 1.13. 特征选择 1.13.1. 移除低方差特征 1.13.2. 单变量特征选择 1.13.3. 递归特征消除 1.13.4. 使用 SelectFromModel 进行特征选择 1.13.5. 顺序特征选择 1.13.6. 作为管道一部分的特征选择 1.14. 半监督学习 1.14.1. 自训练 1.14.2. 标签传播 1.15. 保序回归 1.16. 概率校准 1.16.1. 校准曲线 1.16.2. 校准分类器 1.16.3. 用法 1.17. 神经网络模型(有监督) 1.17.1. 多层感知器 1.17.2. 分类 1.17.3. 回归 1.17.4. 正则化 1.17.5. 算法 1.17.6. 复杂度 1.17.7. 实用技巧 1.17.8. 使用 warm_start 获得更多控制 2. 无监督学习 2.1. 高斯混合模型 2.1.1. 高斯混合 2.1.2. 变分贝叶斯高斯混合 2.2. 流形学习 2.2.1. 简介 2.2.2. Isomap 2.2.3. 局部线性嵌入 2.2.4. 改进的局部线性嵌入 2.2.5. Hessian 特征映射 2.2.6. 谱嵌入 2.2.7. 局部切空间对齐 2.2.8. 多维尺度分析 (MDS) 2.2.9. t-分布随机近邻嵌入 (t-SNE) 2.2.10. 实用技巧 2.3. 聚类 2.3.1. 聚类方法概述 2.3.2. K-均值 2.3.3. 亲和传播 2.3.4. 均值漂移 2.3.5. 谱聚类 2.3.6. 层次聚类 2.3.7. DBSCAN 2.3.8. HDBSCAN 2.3.9. OPTICS 2.3.10. BIRCH 2.3.11. 聚类性能评估 2.4. 双向聚类 2.4.1. 谱共聚类 2.4.2. 谱双向聚类 2.4.3. 双向聚类评估 2.5. 信号分解(矩阵分解问题) 2.5.1. 主成分分析 (PCA) 2.5.2. 核主成分分析 (kPCA) 2.5.3. 截断奇异值分解和潜在语义分析 2.5.4. 字典学习 2.5.5. 因子分析 2.5.6. 独立成分分析 (ICA) 2.5.7. 非负矩阵分解 (NMF or NNMF) 2.5.8. 潜在狄利克雷分配 (LDA) 2.6. 协方差估计 2.6.1. 经验协方差 2.6.2. 收缩协方差 2.6.3. 稀疏逆协方差 2.6.4. 鲁棒协方差估计 2.7. 新颖性检测和离群点检测 2.7.1. 离群点检测方法概述 2.7.2. 新颖性检测 2.7.3. 离群点检测 2.7.4. 使用局部离群因子进行新颖性检测 2.8. 密度估计 2.8.1. 密度估计:直方图 2.8.2. 核密度估计 2.9. 神经网络模型(无监督) 2.9.1. 受限玻尔兹曼机 3. 模型选择和评估 3.1. 交叉验证:评估估计器性能 3.1.1. 计算交叉验证指标 3.1.2. 交叉验证迭代器 3.1.3. 关于洗牌的注意事项 3.1.4. 交叉验证和模型选择 3.1.5. 置换检验分数 3.2. 调整估计器的超参数 3.2.1. 详尽网格搜索 3.2.2. 随机参数优化 3.2.3. 使用逐次减半搜索最佳参数 3.2.4. 参数搜索技巧 3.2.5. 暴力参数搜索的替代方案 3.3. 调整类别预测的决策阈值 3.3.1. 后调整决策阈值 3.4. 指标和评分:量化预测质量 3.4.1. 我应该使用哪个评分函数? 3.4.2. 评分 API 概述 3.4.3. scoring 参数:定义模型评估规则 3.4.4. 分类指标 3.4.5. 多标签排序指标 3.4.6. 回归指标 3.4.7. 聚类指标 3.4.8. 哑估计器 3.5. 验证曲线:绘制分数以评估模型 3.5.1. 验证曲线 3.5.2. 学习曲线 4. 元数据路由 4.1. 用法示例 4.1.1. 带权重的评分和拟合 4.1.2. 带权重的评分和不带权重的拟合 4.1.3. 不带权重的特征选择 4.1.4. 不同的评分和拟合权重 4.2. API 接口 4.3. 元数据路由支持状态 5. 检查 5.1. 部分依赖图和个体条件期望图 5.1.1. 部分依赖图 5.1.2. 个体条件期望 (ICE) 图 5.1.3. 数学定义 5.1.4. 计算方法 5.2. 排列特征重要性 5.2.1. 排列重要性算法概述 5.2.2. 与树中基于杂质的重要性的关系 5.2.3. 强相关特征上的误导值 6. 可视化 6.1. 可用的绘图工具 6.1.1. 显示对象 7. 数据集转换 7.1. 管道和复合估计器 7.1.1. 管道:连接估计器 7.1.2. 回归中的目标转换 7.1.3. FeatureUnion:复合特征空间 7.1.4. 用于异构数据的 ColumnTransformer 7.1.5. 可视化复合估计器 7.2. 特征提取 7.2.1. 从字典加载特征 7.2.2. 特征哈希 7.2.3. 文本特征提取 7.2.4. 图像特征提取 7.3. 数据预处理 7.3.1. 标准化,或均值移除和方差缩放 7.3.2. 非线性转换 7.3.3. 归一化 7.3.4. 编码分类特征 7.3.5. 离散化 7.3.6. 缺失值插补 7.3.7. 生成多项式特征 7.3.8. 自定义转换器 7.4. 缺失值插补 7.4.1. 单变量 vs. 多变量插补 7.4.2. 单变量特征插补 7.4.3. 多变量特征插补 7.4.4. K近邻插补 7.4.5. 保持特征数量不变 7.4.6. 标记插补值 7.4.7. 处理 NaN 值的估计器 7.5. 无监督降维 7.5.1. PCA:主成分分析 7.5.2. 随机投影 7.5.3. 特征聚类 7.6. 随机投影 7.6.1. Johnson-Lindenstrauss 引理 7.6.2. 高斯随机投影 7.6.3. 稀疏随机投影 7.6.4. 逆向转换 7.7. 核近似 7.7.1. 核近似的 Nystroem 方法 7.7.2. 径向基函数核 7.7.3. 可加卡方核 7.7.4. 偏斜卡方核 7.7.5. 通过张量草图进行多项式核近似 7.7.6. 数学细节 7.8. 成对指标、相似性和核函数 7.8.1. 余弦相似度 7.8.2. 线性核 7.8.3. 多项式核 7.8.4. Sigmoid 核 7.8.5. RBF 核 7.8.6. Laplacian 核 7.8.7. 卡方核 7.9. 转换预测目标(y) 7.9.1. 标签二值化 7.9.2. 标签编码 8. 数据集加载工具 8.1. 玩具数据集 8.1.1. 鸢尾花数据集 8.1.2. 糖尿病数据集 8.1.3. 手写数字光学识别数据集 8.1.4. Linnerrud 数据集 8.1.5. 葡萄酒识别数据集 8.1.6. 威斯康星州乳腺癌(诊断)数据集 8.2. 真实世界数据集 8.2.1. Olivetti 人脸数据集 8.2.2. 20 newsgroups 文本数据集 8.2.3. Labeled Faces in the Wild 人脸识别数据集 8.2.4. 森林覆盖类型 8.2.5. RCV1 数据集 8.2.6. Kddcup 99 数据集 8.2.7. 加州住房数据集 8.2.8. 物种分布数据集 8.3. 生成的数据集 8.3.1. 分类和聚类生成器 8.3.2. 回归生成器 8.3.3. 流形学习生成器 8.3.4. 分解生成器 8.4. 加载其他数据集 8.4.1. 样本图像 8.4.2. svmlight / libsvm 格式的数据集 8.4.3. 从 openml.org 存储库下载数据集 8.4.4. 从外部数据集加载 9. 使用 scikit-learn 进行计算 9.1. 计算扩展策略:大数据 9.1.1. 使用核外学习按实例扩展 9.2. 计算性能 9.2.1. 预测延迟 9.2.2. 预测吞吐量 9.2.3. 技巧和窍门 9.3. 并行性、资源管理和配置 9.3.1. 并行性 9.3.2. 配置开关 10. 模型持久化 10.1. 工作流程概述 10.1.1. 训练和持久化模型 10.2. ONNX 10.3. skops.io 10.4. pickle, joblib, 和 cloudpickle 10.5. 安全性和可维护性限制 10.5.1. 在生产环境中复制训练环境 10.5.2. 提供模型工件 10.6. 总结要点 11. 常见陷阱和推荐实践 11.1. 不一致的预处理 11.2. 数据泄露 11.2.1. 如何避免数据泄露 11.2.2. 预处理期间的数据泄露 11.3. 控制随机性 11.3.1. 使用 None 或 RandomState 实例,以及对 fit 和 split 的重复调用 11.3.2. 常见陷阱和微妙之处 11.3.3. 一般建议 12. 分派 12.1. 数组 API 支持(实验性) 12.1.1. 启用数组 API 支持 12.1.2. 使用示例 12.1.3. 支持 Array API 兼容输入 12.1.4. 输入和输出数组类型处理 12.1.5. 常见估计器检查 13. 选择合适的估计器 14. 外部资源、视频和讲座 14.1. scikit-learn MOOC 14.2. 视频 14.3. 科学 Python 新手? 14.4. 外部教程