讲师中心 微信公众号
AI工具推荐 视频效率加速

如何用数学公式表达经样条变换器与线性回归联合拟合的高维模型

冬婷吖_1491

冬婷吖_1491

发布时间:2026-07-21 11:04:00

|

339人浏览过

|

来源于php中文网

原创

如何用数学公式表达经样条变换器与线性回归联合拟合的高维模型

本文介绍如何将使用 splinetransformer(含5个结点、1阶多项式)预处理后、再由线性回归拟合的高维模型,转化为显式的分段多项式数学表达式,涵盖主效应、交互项及结点处的连续性处理要点。

本文介绍如何将使用 splinetransformer(含5个结点、1阶多项式)预处理后、再由线性回归拟合的高维模型,转化为显式的分段多项式数学表达式,涵盖主效应、交互项及结点处的连续性处理要点。

在高维回归建模中,SplineTransformer(如 scikit-learn 中实现)常用于对连续型特征进行非线性扩展:它将每个原始特征 $x_j$($j = 1,\dots,5$)映射为一组分段线性基函数(B-splines 或截断幂基),通常采用“knots + degree + include_bias”参数组合生成多个新特征。当指定 degree=1(即线性样条)和 n_knots=5 时,实际会在数据范围内自动选择 5 个内结点(interior knots),并构造出 $K = n_{\text{knots}} + \text{degree} + 1 = 7$ 个基函数(含截距项),每个基函数均为分段线性、连续、紧支撑的函数。

假设原始特征向量为 $\mathbf{x} = (x_1, x_2, x_3, x_4, x_5)^\top \in \mathbb{R}^5$,经 SplineTransformer 处理后得到扩展特征矩阵 $\Phi(\mathbf{x}) \in \mathbb{R}^{1 \times D}$,其中维度 $D$ 取决于是否启用交互项(include_interaction=True)。若仅对各特征独立样条化且无交互,则 $D = 5 \times 7 = 35$;若启用所有二阶交互(默认 interaction_only=False,但 include_interaction=True 会生成所有两两特征组合的样条乘积),则 $D$ 将大幅增加(例如 $\binom{5}{2} \times 7 \times 7 + 5 \times 7 = 1225 + 35 = 1260$ 维),此时数学表达式将极为冗长——因此实践中建议明确区分主效应与交互结构。

✅ 核心数学形式(以单特征为例)

设 $x$ 为某原始特征,其 5 个内结点为 $\xi_1 < \xi_2 < \xi_3 < \xi_4 < \xi_5$,边界结点取为 $\xi_0 = \min(x),\ \xi_6 = \max(x)$。线性 B-样条基函数 $b_k(x)$($k=0,\dots,6$)满足:

$$ bk(x) = \begin{cases} \frac{x - \xi{k-1}}{\xik - \xi{k-1}}, & \xi_{k-1} \le x < \xik \ \frac{\xi{k+1} - x}{\xi_{k+1} - \xi_k}, & \xik \le x < \xi{k+1} \ 0, & \text{otherwise} \end{cases} $$

(注:scikit-learn 默认使用 knots + degree + 1 个基函数的截断幂形式,但等价于上述 B-样条张成空间。)

因此,该特征对应的样条变换输出为: $$ \boldsymbol{\phi}(x) = \big[1,\, (x - \xi1)+,\, (x - \xi2)+,\, \dots,\, (x - \xi5)+\big]^\top \quad \text{(截断线性基,共 6 维)} $$ 其中 $(\cdot)_+ = \max(0, \cdot)$。加上截距项后共 7 维,与前述一致。

✅ 全模型数学表达式(含交互项)

令 $\mathbf{w} \in \mathbb{R}^D$ 为训练所得线性回归系数向量(含截距 $w_0$),则最终预测函数为:

$$ \hat{y}(\mathbf{x}) = w0 + \sum{j=1}^5 \sum{k=1}^{7} w{jk}\, b_{jk}(xj) + \sum{1 \le j < \ell \le 5} \sum{k=1}^{7} \sum{m=1}^{7} w{jk,\ell m}\, b{jk}(xj) \cdot b{\ell m}(x_\ell) $$

其中:

  • $b_{jk}(x_j)$ 表示第 $j$ 个特征的第 $k$ 个样条基函数;
  • $w_{jk,\ell m}$ 是对应交互项的系数,仅当启用 include_interaction=True 时非零;
  • 所有 $b_{jk}(\cdot)$ 均为分段线性函数,需按结点区间分段书写。

⚠️ 实际操作建议与注意事项

  1. 提取结点与系数:

    from sklearn.preprocessing import SplineTransformer
    from sklearn.linear_model import LinearRegression
    from sklearn.pipeline import Pipeline
    
    # 假设 X_train.shape == (n_samples, 5)
    spline = SplineTransformer(n_knots=5, degree=1, include_interaction=True)
    X_spline = spline.fit_transform(X_train)  # shape: (n, D)
    
    lr = LinearRegression().fit(X_spline, y_train)
    w = lr.coef_
    intercept = lr.intercept_
    
    # 获取结点位置(每列对应一个原始特征的结点)
    knots = spline.knots  # shape: (n_knots+2, 5) —— 包含边界
  2. 避免手工书写全式:对 5 维输入+交互,总基函数数可达上千,不推荐手写完整公式。更实用的方式是:

    • 将模型封装为可调用函数,利用 spline.transform() 动态计算 $\Phi(\mathbf{x})$;
    • 对关键变量(如 $x_1$)做边际效应图(partial dependence plot);
    • 使用 sklearn.inspection.plot_partial_dependence 可视化单变量/双变量样条效应。
  3. 结点处的连续性:线性样条天然保证函数连续,但一阶导数在结点处不连续;若需更高阶光滑性,应改用 degree=3(三次样条),此时数学表达式变为分段三次多项式,需额外约束导数连续性。

  4. 可解释性权衡:虽然数学公式理论上存在,但高维样条+交互模型本质上属于“可计算不可解析”模型。如需强可解释性,建议:

    • 关闭 include_interaction;
    • 对每个特征单独拟合并可视化其样条效应;
    • 使用 SHAP 或 LIME 近似局部线性解释。

综上,该模型的数学本质是高维分段线性函数的加权和,其显式表达虽可行,但工程实践中应优先依赖代码复现与可视化诊断,而非追求封闭解析式。

热门AI工具

更多
LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

相关专题

更多
Python 机器学习入门与 Scikit-Learn 实战
Python 机器学习入门与 Scikit-Learn 实战

面向机器学习初学者,以 Scikit-Learn 为核心工具,讲解机器学习基本概念(监督学习/无监督学习/模型评估)、数据预处理(标准化/归一化/缺失值填充/特征编码)、常用分类算法(逻辑回归/决策树/随机森林/SVM/KNN)、回归算法(线性回归/岭回归/Lasso)、无监督聚类(K-Means/DBSCAN)、交叉验证与超参数调优(GridSearch/RandomSearch)、混淆矩阵与 ROC/AUC 模型评估指标,帮助开发者

335

2026.04.24

FrankenPHP集成Laravel详细教程
FrankenPHP集成Laravel详细教程

本专题提供FrankenPHP集成Laravel的详细配置指南,全面解析运行原理、开发环境搭建、Caddyfile配置、Octane工作模式、数据库连接、队列任务、定时任务和生产环境优化,解决部署过程中常见的报错与兼容性问题。

40

2026.10.08

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

140

2026.09.30

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

120

2026.09.30

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

100

2026.09.30

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

100

2026.09.30

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

120

2026.09.29

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

320

2026.09.23

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

220

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Uniapp从零开始实现新闻资讯应用
Uniapp从零开始实现新闻资讯应用

共67课时 | 12.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn