摘要: Sklearn 源码解析(书)v1.0(一) 第 1 章 —— scikit-learn 概览 —— 认识这座“机器学习工具箱” 1.1 学习目标 难度:★★★☆☆(3/5) 预备知识:Python 基础、面向对象编程与 Markdown/代码阅读基础 理解 README 作为项目'品牌名片'的信息 阅读全文
posted @ 2026-09-04 08:54 绝不原创的飞龙 阅读(28) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(五) 11.18 设计中的取舍 为什么采用当前方案,而不是更复杂的替代方案? 本章源码优先选择清晰、可维护且与既有 API 兼容的实现;这降低了使用和调试成本,但也意味着部分极端场景需要调用者自行权衡性能、灵活性与实现复杂度。 11.19 动手练习 11.19 阅读全文
posted @ 2026-09-04 08:54 绝不原创的飞龙 阅读(9) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(四) RANSACRegressor 使用 _dynamic_max_trials 根据当前内点比例动态调整 max_trials。相比固定迭代次数,动态策略在内点比例高时大幅减少计算,在内点比例低时自动增加尝试次数以保证置信度。stop_probabilit 阅读全文
posted @ 2026-09-04 08:54 绝不原创的飞龙 阅读(10) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(十一) 这段代码实现了亲和传播的核心消息传递循环。算法维护两个矩阵:责任矩阵 R(样本 i 选择样本 j 作为其 exemplar 的适用度)和可用性矩阧 A(样本 j 适合作为 exemplar 的程度,考虑到其他样本对 j 作为 exemplar 的竞争) 阅读全文
posted @ 2026-09-04 08:54 绝不原创的飞龙 阅读(12) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(十五) 代码解析: 函数根据 samplewise 参数输出两种形状:samplewise=False 时为 (n_labels, 2, 2),每个类别一个 2x2 矩阵;samplewise=True 时为 (n_samples, 2, 2),每个样本一个矩 阅读全文
posted @ 2026-09-04 08:54 绝不原创的飞龙 阅读(8) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(十四) (这段代码定义了 Ledoit-Wolf 收缩估计器的公共接口:它内部创建一个 LedoitWolf 估计器实例,调用其 fit 方法,然后返回收缩后的协方差矩阵和收缩系数。) 源码路径:sklearn/covariance/_graph_lasso. 阅读全文
posted @ 2026-09-04 08:54 绝不原创的飞龙 阅读(12) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(十三) 这段代码实现了深度优先决策树的构建:它使用栈模拟递归,为每个节点检查是否为叶节点(基于深度、样本数或不纯度),如果不是则寻找最佳分裂,创建子节点并继续处理。节点值通过分裂器计算并存储,若有单调性约束则进行值裁剪。 源码路径:sklearn/tree/_ 阅读全文
posted @ 2026-09-04 08:54 绝不原创的飞龙 阅读(6) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(十七) OvR:把每个类别视作 正例,其他类别视作 负例,得到 n_classes 个二分类问题;随后使用 _binary_roc_auc_score 计算每个二分类 AUC,并根据 average 进行加权(macro、weighted、micro)。 Ov 阅读全文
posted @ 2026-09-04 08:54 绝不原创的飞龙 阅读(19) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(十六) 源码路径:sklearn/metrics/_base.py - _average_multiclass_ovo_score()(第82-135行) def _average_multiclass_ovo_score(binary_metric, y_t 阅读全文
posted @ 2026-09-04 04:09 绝不原创的飞龙 阅读(7) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(十九) 这一段代码实现了:跨所有交叉验证器的统一 split 接口,使得不同实现方式(掩码或索引)能够互操作,降低子类实现的重复工作。 架构图 flowchart TD split[split方法] --> indexable[X, y, groups -> 阅读全文
posted @ 2026-09-04 04:09 绝不原创的飞龙 阅读(14) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(十二) ├── Predictor.predict ├── _compute_gradients_hessians sklearn/ensemble/_hist_gradient_boosting/gradient_boosting.py ├── BaseHi 阅读全文
posted @ 2026-09-04 04:09 绝不原创的飞龙 阅读(9) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(十八) 解释:除权重检查外,还专门处理 outlier_label:当某个查询点在给定半径内没有邻居时,返回 outlier_label 对应的概率向量,或者在 outlier_label=None 时抛出 ValueError。 35.6.1.3 sqeuc 阅读全文
posted @ 2026-09-04 04:09 绝不原创的飞龙 阅读(15) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(十) 概述:predict 根据策略生成预测:most_frequent/prior 返回加权众数(argmax);stratified 先调用 predict_proba 采样再取 argmax,保证两者一致;uniform 均匀随机采样;constant 阅读全文
posted @ 2026-09-04 04:09 绝不原创的飞龙 阅读(8) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(三十一) 代码作用:此代码展示了 HistGradientBoostingRegressor 在处理类别特征时的多种策略及其性能表现。通过比较删除、独热编码、序数编码、目标编码和原生类别支持五种方法,我们可以看到:删除类别特征导致性能最差;独热编码虽然能保留信 阅读全文
posted @ 2026-09-04 04:09 绝不原创的飞龙 阅读(8) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(三十五) 下图展示了分解基准类在 ASV 框架下的完整执行流程,从参数网格展开到计时与评分的每一步都清晰可见: graph TD A[ASV 读取 param_names+params] --> B[笛卡尔积展开为参数组合] B --> C[对每组参数调用 s 阅读全文
posted @ 2026-09-04 04:09 绝不原创的飞龙 阅读(8) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(三十四) 这个例子展示了多输出回归的两种典型结果:ExtraTrees 和 KNN 能捕捉像素级的非线性依赖,而 Linear/Ridge 只能生成模糊的平均脸。源码在第 75-95 行用 4 列子图并排展示"真实下半脸 + 4 种方法的预测下半脸"。 76. 阅读全文
posted @ 2026-09-04 04:09 绝不原创的飞龙 阅读(10) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(三十三) 学会使用离散化技术为线性模型引入非线性能力 比较过滤式、包裹式和嵌入式特征选择方法的优缺点 理解目标编码的机制及其交叉拟合策略如何防止过拟合 能够使用 Pipeline 和 ColumnTransformer 构建无数据泄露的预处理流水线 74.2 阅读全文
posted @ 2026-09-04 04:09 绝不原创的飞龙 阅读(10) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(三十七) 第 ② 行创建 RandomState 实例而非依赖全局种子,保证函数自身可复现。 第 ③ 行使用 COO(Coordinate)格式而非直接 CSR——COO 构造最简单,只需 (data, (row, col)) 三元组。 第 ④ 行非零值使用 阅读全文
posted @ 2026-09-04 04:09 绝不原创的飞龙 阅读(11) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(三十六) 逐行解析: 第 26-27 行:np.logspace(0.5, 3, 9) 生成 9 个在对数空间均匀分布的样本数点(从 √10 ≈ 3.16 到 10³=1000)。 第 28 行:np.logspace(1, 3.5, 7) 生成 7 个特征数 阅读全文
posted @ 2026-09-04 04:09 绝不原创的飞龙 阅读(14) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(三十九) 作为"随车工具包装配工",这段函数生成的 _distributor_init.py 是整个 wheel 中最精妙的"挡风玻璃说明书"——它必须在其他任何 Cython 扩展模块之前执行,因为 OpenMP 符号是这些扩展模块的运行期依赖。if os. 阅读全文
posted @ 2026-09-04 04:09 绝不原创的飞龙 阅读(11) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(三十二) 这段代码演示了单调约束如何工作:在树的分裂过程中,过滤掉违反单调性的分裂点(例如,当特征0应单增时,不允许在特征0上划分导致左子节点特征0值大于右子节点的分裂),同时约束叶子值满足单调关系。可以看到有约束的模型更能捕捉数据的总体趋势,而无约束模型则跟 阅读全文
posted @ 2026-09-04 04:09 绝不原创的飞龙 阅读(11) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(三十八) 下图以流程化方式刻画了 9 枚徽章从"集中声明"到"渲染展示"的传递路径,便于直观理解徽章墙在 README 入口处的枢纽位置: graph LR A[README.md 第5-30行<br/>image:: 徽章定义] --> B[RST 渲染引擎 阅读全文
posted @ 2026-09-04 04:09 绝不原创的飞龙 阅读(11) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(三十) 这段代码实现了一个Sphinx后处理转换,为sphinx-design下拉菜单生成稳定的锚点ID,确保深度链接在文档重建后仍然有效。[/content] [content] import inspect import os import subproc 阅读全文
posted @ 2026-09-04 04:08 绝不原创的飞龙 阅读(9) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(三) 解释:MetadataRouter 维护一个 树形结构:根节点(元估计器)拥有子节点(子估计器),每个节点保存 请求 与 方法映射。在 process_routing 时根据该树生成实际传递给子对象的 kwargs。 生活类比:这就像一个家庭树——祖父母 阅读全文
posted @ 2026-09-04 04:08 绝不原创的飞龙 阅读(8) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(七) 15.17 设计中的取舍 为什么不用 middleware 链处理副作用? Pipeline 的元数据路由采用声明式映射而非 middleware 链。Middleware 链复杂度高,适用于多种副作用类型需要插拔的场景;而 Pipeline 的副作用类 阅读全文
posted @ 2026-09-04 04:08 绝不原创的飞龙 阅读(9) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(六) | 二值化 | 无 | 无 | binarize 阈值 | 无(要求整数编码) | | 关键参数 | alpha, force_alpha | alpha, norm | alpha, binarize | alpha, min_categories | 阅读全文
posted @ 2026-09-04 04:08 绝不原创的飞龙 阅读(10) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(九) 逐行注释: 定义类型:y、w 为连续浮点数组,target 为 intp 数组初始化为 [0, 1, ..., n-1] target 编码块结构:块 [i..j] 满足 target[i]=j 且 target[j]=i 活跃块起始索引 i 存储块聚合 阅读全文
posted @ 2026-09-04 04:08 绝不原创的飞龙 阅读(27) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(二十一) 实现细节 首行携带元信息(样本数、特征数、标签名称),通过手动解析获取这些元数据。 随后逐行读取数值部分,填充到预先分配好的 np.empty 矩阵中,保持了对大文件的内存友好。 若提供 descr_file_name,会调用 load_descr 阅读全文
posted @ 2026-09-04 04:08 绝不原创的飞龙 阅读(9) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(二十五) doc_link 与 doc_link_label 组合生成可点击的 API 文档链接,若无则不渲染。 is_fitted_* 负责在左侧显示已拟合的灯标(对应博物馆展品已参观的指示灯)。 60.5.2 参数渲染:ParamsDict 与 _para 阅读全文
posted @ 2026-09-04 04:08 绝不原创的飞龙 阅读(9) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(二十四) 56.6 编码与唯一值缓存的边界情况 56.6.1 双轨编码实现 | 路径 | 适用 dtype | 关键实现 | | | | | | 对象 dtype (dtype == object) | object | _unique_python → se 阅读全文
posted @ 2026-09-04 04:07 绝不原创的飞龙 阅读(11) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(二十三) 54.4 元数据路由核心机制 —— 「请求‑声明‑路由」三层协同的智能物流系统 54.4.1 关键点 MetadataRequest:每个 consumer(如 LinearRegression、SVC)都有一个 _metadata_request, 阅读全文
posted @ 2026-09-04 04:07 绝不原创的飞龙 阅读(9) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(二十七) 这段代码定义了 SVDResult 等 NamedTuple 与对应的包装函数。SVDResult(*xp.linalg.svd(...)) 用星号解析原生返回的元组。用户可以写 U, S, Vh = svd(x) 解析,也可以写 result.U 阅读全文
posted @ 2026-09-04 04:07 绝不原创的飞龙 阅读(12) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(二十六) 要点:predict_proba 用逆链接 expit 恢复 类别 1 的概率,然后 1‑p 得到 类别 0 的概率。这在二分类预测接口(如 predict_proba)中至关重要。 63.6.6 代码解读:HalfMultinomialLoss(第 阅读全文
posted @ 2026-09-04 04:07 绝不原创的飞龙 阅读(13) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(二十九) feature_extraction_ref-from-text. However, note that a better way is to refer using the :mod: directive, e.g., :mod:sklearn.f 阅读全文
posted @ 2026-09-04 04:07 绝不原创的飞龙 阅读(9) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(二十二) 解释:特征尺度被 放大,并加入 平方根‑分式 组合,模拟 异构尺度 与 复杂交互。 50.9.3 make_friedman3 源码路径:sklearn/datasets/_samples_generator.py – make_friedman3( 阅读全文
posted @ 2026-09-04 04:07 绝不原创的飞龙 阅读(9) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(二十八) 66.15 小结表(前置说明句) 本章围绕源码梳理了核心数据结构、调用流程与设计权衡。 以下是本章概念速查表: | 概念 | 解释 | | | | | array_namespace() | 核心后端识别入口,自动推断输入数组所属的 Array AP 阅读全文
posted @ 2026-09-04 04:07 绝不原创的飞龙 阅读(32) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(二十) __all__ 明确列出了 当用户执行 from sklearn.model_selection import * 时应当导出的符号,从而隐藏内部实现细节。即便 Halving* 属于实验特性,它们也被列入 __all__,因为 __getattr__ 阅读全文
posted @ 2026-09-04 04:07 绝不原创的飞龙 阅读(6) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(二) 显式参数列表提供了 IDE 自动补全、类型检查(mypy/pyright)、文档生成(Sphinx)的完整支持。 **kwargs 会丢失参数名信息,导致文档生成器无法识别合法配置键,用户也无法获得类型提示。 10 个配置项数量固定且稳定,显式写入的维护 阅读全文
posted @ 2026-09-04 04:07 绝不原创的飞龙 阅读(9) 评论(0) 推荐(0)
摘要: Sklearn 源码解析(书)v1.0(八) X=[[0.5]] 无法高置信预测,首轮无新增样本,触发 no_change 终止。 源码路径:sklearn/semi_supervised/tests/test_self_training.py - test_zero_iterations()(第1 阅读全文
posted @ 2026-09-04 04:07 绝不原创的飞龙 阅读(16) 评论(0) 推荐(0)