【机器学习】基扩展的基本概念以及其中的多项式回归、样条方法和广义可加模型的简单介绍(含python代码实例)

news2024/11/15 21:46:51

引言

基扩展是提升模型性能的重要工具,正确选择和应用基扩展方法可以显著提高模型的预测能力和解释性

文章目录

  • 引言
  • 一、基扩展
    • 1.1 基扩展定义
    • 1.2 基扩展方法
      • 1.2.1 多项式基扩展
      • 1.2.2 样条基扩展
      • 1.2.3 径向基函数(RBF)
      • 1.2.4 傅里叶基扩展
      • 1.2.5 wavelet基扩展
      • 1.2.6 单隐藏层神经网络
    • 1.3 应用场景
    • 1.4 使用基扩展的注意点
  • 二、多项式回归
    • 2.1 基本概念
    • 2.2 特点
    • 2.3 建立多项式回归模型
    • 2.4 实践步骤
    • 2.5 注意事项
  • 三、样条方法
    • 3.1 样条的类型
      • 3.1.1 线性样条
      • 3.1.2 多项式样条
      • 3.1.3 B样条
    • 3.2 样条方法的关键特性
    • 3.3 样条方法的步骤
    • 3.4 样条方法的应用
    • 3.5 在Python中使用样条
    • 3.6 总结
  • 四、MARS(多元自适应回归样条)
    • 4.1 基本原理
    • 4.2 特点
    • 4.3 建模步骤:
    • 4.4 应用
    • 4.5 限制
    • 4.6 总结
  • 五、 广义可加模型(GAMs)
    • 5.1 基本概念
    • 5.2 特点
    • 5.3 应用
      • 实践步骤
    • 5.4 注意事项
    • 5.5 总结

一、基扩展

1.1 基扩展定义

基扩展(Basis Expansion)是机器学习和统计模型中的一种技术,用于将原始的输入变量通过某种方式转换成新的表示形式,从而增强模型的表达能力,使其能够捕捉到数据中的非线性关系

1.2 基扩展方法

1.2.1 多项式基扩展

多项式基扩展是最简单的一种基扩展方法。它通过将原始特征的所有可能组合以多项式的形式进行扩展。例如,对于两个特征 x 1 x_1 x1 x 2 x_2 x2,二次多项式基扩展可以表示为:
( x 1 , x 2 ) → ( 1 , x 1 , x 2 , x 1 2 , x 1 x 2 , x 2 2 ) (x_1, x_2) \rightarrow (1, x_1, x_2, x_1^2, x_1x_2, x_2^2) (x1,x2)(1,x1,x2,x12,x1x2,x22)
这种方法可以捕捉到特征间的交互作用,但是当特征维度较高时,多项式的维度会迅速增加,导致计算复杂度和过拟合的风险增加

1.2.2 样条基扩展

样条基扩展使用分段多项式(例如B样条)来构建基函数。样条基函数可以在局部区域提供平滑的拟合,同时在整个定义域上保持一定的光滑性。样条基扩展常用于回归分析中,特别是当数据呈现非线性趋势时

1.2.3 径向基函数(RBF)

径向基函数是一类仅依赖于样本与中心点之间距离的函数,常用的RBF包括高斯函数、多项式函数和逆多二次函数等。RBF可以用于非线性问题的建模,例如在支持向量机(SVM)中使用

1.2.4 傅里叶基扩展

傅里叶基扩展将原始特征转换成傅里叶级数的形式,适用于周期性数据的建模。它将时间序列数据表示为不同频率的正弦和余弦波的叠加

1.2.5 wavelet基扩展

小波变换是另一种基扩展方法,它通过将数据分解为不同尺度和位置的wavelet函数的加权和来捕捉时间序列的局部特征

1.2.6 单隐藏层神经网络

神经网络中的隐藏层也可以看作是一种基扩展。每个隐藏单元可以看作是一个基函数,其输出是输入的非线性函数。通过调整网络权重,可以学习到复杂的特征表示

1.3 应用场景

基扩展技术在以下场景中非常有用:

  • 当数据是非线性结构,而线性模型不足以捕捉这种结构时
  • 当需要模型具有更强的解释性时,例如通过选择特定的基函数来解释数据的特定属性
  • 在特征工程中,用于创建新的特征,以增强模型的预测能力

1.4 使用基扩展的注意点

  • 防止过拟合:基函数的数量增加可能会导致模型过于复杂,从而在训练数据上过拟合
  • 计算效率:高维基扩展可能会大大增加模型的计算成本
  • 解释性:某些基扩展方法可能会降低模型的解释性,使得结果难以解释

二、多项式回归

多项式回归是一种特殊的线性回归形式,它通过考虑预测变量的非线性项(例如平方项、立方项等)来捕捉变量间更复杂的关系。在多项式回归中,响应变量(因变量)是多个预测变量(自变量)的线性组合,而这些预测变量经过了多项式变换

2.1 基本概念

多项式回归模型可以表示为:
Y = β 0 + β 1 X + β 2 X 2 + β 3 X 3 + ⋯ + β k X k + ε Y = \beta_0 + \beta_1 X + \beta_2 X^2 + \beta_3 X^3 + \cdots + \beta_k X^k + \varepsilon Y=β0+β1X+β2X2+β3X3++βkXk+ε
其中, Y Y Y是响应变量, X X X是预测变量, β 0 , β 1 , . . . , β k \beta_0, \beta_1, ..., \beta_k β0,β1,...,βk是模型参数, ε \varepsilon ε是误差项, k k k是多项式的阶数

2.2 特点

  • 非线性关系:虽然模型是线性的(参数的线性组合),但预测变量之间的关系是非线性的
  • 灵活性:通过增加多项式的阶数,模型可以捕捉更复杂的数据结构
  • 过拟合风险:高阶多项式可能导致模型在训练数据上过拟合,泛化能力下降

2.3 建立多项式回归模型

  1. 数据准备:确定预测变量和响应变量
  2. 多项式特征生成:将原始预测变量 X X X 转换为多项式特征,包括 X , X 2 , . . . , X k X, X^2, ..., X^k X,X2,...,Xk
  3. 模型拟合:使用最小二乘法等线性回归技术拟合转换后的数据
  4. 模型评估:通过交叉验证、拟合度指标(如 R²)和图形诊断等方法评估模型性能

2.4 实践步骤

以下是在Python中使用numpysklearn实现多项式回归的简单步骤

import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import make_pipeline
# 假设X是输入特征,y是响应变量
X = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)
y = np.array([2, 6, 5, 5, 12])
# 创建一个多项式回归模型,这里我们使用2阶多项式
degree = 2
model = make_pipeline(PolynomialFeatures(degree), LinearRegression())
# 拟合模型
model.fit(X, y)
# 预测新数据
X_new = np.array([6]).reshape(-1, 1)
y_pred = model.predict(X_new)
print(f"预测值: {y_pred}")

输出结果:
在这里插入图片描述

2.5 注意事项

  • 特征缩放:在进行多项式回归之前,通常需要对原始特征进行标准化或归一化,特别是当多项式的阶数较高时
  • 选择合适的阶数:应该根据数据特性和模型性能来选择合适的多项式阶数,避免过拟合
  • 正则化:在某些情况下,可以使用正则化方法(如岭回归或LASSO)来控制模型复杂度,减少过拟合

三、样条方法

样条方法(Spline Methods)是数学和统计中用于数据平滑和曲线拟合的技术。样条是一种分段定义的多项式函数,它在每个分段内部都是连续且光滑的,并且在分段点处具有预定的连续性。样条方法在数据分析和机器学习中非常有用,特别是在需要捕捉非线性关系时

3.1 样条的类型

3.1.1 线性样条

线性样条是最简单的样条,它由一系列直线段组成。每个直线段都是两个相邻数据点之间的连线

3.1.2 多项式样条

多项式样条是由多项式组成的样条,每个多项式的阶数可以是任意的。常见的多项式样条包括二次样条和三次样条

  • 二次样条:每个分段是一个二次多项式
  • 三次样条:每个分段是一个三次多项式,是最常用的样条类型,因为它可以提供平滑且灵活的拟合

3.1.3 B样条

B样条是基样条,它们是多项式样条的一种推广。B样条由一系列控制点和一个定义样条形状的多项式基函数确定

3.2 样条方法的关键特性

  • 局部性:样条方法具有局部性,这意味着修改一个数据点只会影响样条在该点附近的形状
  • 平滑性:样条在分段点处保持一定的连续性和平滑性,通常是连续的,并且一阶或二阶导数也是连续的
  • 灵活性:样条方法可以适应各种数据模式,从简单的线性关系到复杂的非线性关系

3.3 样条方法的步骤

  1. 选择样条类型:根据数据的特性和需求选择合适的样条类型
  2. 确定节点:节点是样条分段的端点,通常与数据点相对应,但也可以是其他位置
  3. 拟合样条:使用最小二乘法或其他优化技术来拟合样条,确定样条系数
  4. 评估和优化:评估样条拟合的质量,必要时调整样条参数或类型

3.4 样条方法的应用

  • 回归分析:样条回归可以用于非线性数据的建模,特别是在自变量和因变量之间的关系是非线性时
  • 数据插值:样条可以用于估计未知数据点的值
  • 图像处理:样条用于图像的平滑和形状的建模
  • 计算机图形学:在计算机辅助设计(CAD)中,样条用于创建曲线和曲面

3.5 在Python中使用样条

在Python中,可以使用scipy.interpolate模块中的函数来创建和使用样条
以下是一个使用三次样条插值的简单例子:

import numpy as np
from scipy.interpolate import CubicSpline
import matplotlib.pyplot as plt
# 原始数据点
x = np.array([0, 1, 2, 3, 4, 5])
y = np.array([0, 1, 4, 10, 18, 29])
# 创建三次样条对象
cs = CubicSpline(x, y)
# 使用样条进行插值
x_new = np.linspace(0, 5, 100)
y_new = cs(x_new)
# 绘图查看结果
plt.plot(x, y, 'o', label='data points')
plt.plot(x_new, y_new, '-', label='cubic spline')
plt.legend()
plt.show()

输出结果:
在这里插入图片描述

3.6 总结

样条方法是一种强大的工具,可以在数据分析和建模中提供灵活性和准确性。然而,需要注意的是,样条方法也可能导致过拟合,特别是在样条参数过多时。因此,在使用样条时,应该考虑模型的泛化能力和复杂性

四、MARS(多元自适应回归样条)

MARS(多元自适应回归样条)是一种非参数回归技术,它通过构建分段线性回归模型来捕捉数据中的复杂关系和非线性模式。MARS模型是由 Jerome Friedman 在1991年提出的,它结合了多元线性回归和样条回归的特点,能够自动选择模型复杂度,适用于各种数据类型的预测分析

4.1 基本原理

  1. 基本模型:MARS模型是基于基函数的线性组合。这些基函数是通过对原始预测变量进行转换得到的

  2. 样条:MARS使用样条来拟合数据中的非线性关系。样条是由多个分段定义的平滑曲线,每个分段可以捕获数据的局部特征

  3. 基函数的选择:MARS通过向前选择(forward selection)和向后消除(backward elimination)的过程来选择基函数。这个过程可以自动确定模型的最佳复杂度

  4. 模型形式:一个MARS模型可以表示为:
    f ( x ) = ∑ i = 1 k c i B i ( x ) f(x) = \sum_{i=1}^{k} c_i B_i(x) f(x)=i=1kciBi(x)
    其中, B i ( x ) B_i(x) Bi(x)是基函数, c i c_i ci是系数

4.2 特点

  • 灵活性:能够处理非线性关系和交互作用
  • 鲁棒性:对异常值不太敏感
  • 自适应性:能够根据数据自动选择模型复杂度

4.3 建模步骤:

  1. 选择基函数:使用向前选择来增加基函数,直到模型拟合度不再显著提高
  2. 剪枝:通过交叉验证来剪枝,移除不必要的基函数,避免过拟合
  3. 模型优化:使用最小二乘法来估计模型参数

4.4 应用

MARS广泛应用于各种领域,包括工程、经济学、生态学、医学等,特别是在数据呈现非线性特征时

4.5 限制

  • 当数据量非常大时,MARS可能会变得计算密集
  • 对于具有许多预测变量的高维数据,MARS可能会选择过于复杂的模型,导致过拟合

4.6 总结

在使用MARS时,需要仔细考虑模型的泛化能力,避免仅仅因为拟合训练数据而忽略了模型的实际预测能力。通过交叉验证等技术,可以帮助评估MARS模型的性能。在中国,MARS方法也被广泛应用于科研和生产中,助力决策者从复杂数据中提取有用信息,支持科学决策

五、 广义可加模型(GAMs)

广义可加模型(Generalized Additive Models,简称GAMs)是一种用于回归分析的统计模型,由 Trevor Hastie 和 Robert Tibshirani 在1986年提出。GAMs 是线性模型的推广,它允许响应变量和预测变量之间的关系是非线性的,同时保持模型的加性结构

5.1 基本概念

GAMs 的基本形式如下:
g ( μ ) = β 0 + f 1 ( X 1 ) + f 2 ( X 2 ) + ⋯ + f p ( X p ) + ε g(\mu) = \beta_0 + f_1(X_1) + f_2(X_2) + \cdots + f_p(X_p) + \varepsilon g(μ)=β0+f1(X1)+f2(X2)++fp(Xp)+ε
其中:

  • μ \mu μ是响应变量的期望值
  • g ( ⋅ ) g(\cdot) g()是连接函数,它将期望值转换为响应变量的范围
  • β 0 \beta_0 β0是截距项
  • f i ( X i ) f_i(X_i) fi(Xi)是第 i i i个预测变量 X i X_i Xi的非参数平滑函数
  • ε \varepsilon ε是误差项

5.2 特点

  • 非参数平滑函数:GAMs 允许每个预测变量都有自己的平滑函数,这意味着模型可以捕捉到复杂的非线性关系,而不需要事先指定这些关系的具体形式
  • 加性结构:模型保持加性结构,即预测变量之间的关系是独立的,这简化了模型的解释性
  • 灵活性:GAMs 提供了比传统线性模型更大的灵活性,可以适应各种数据模式
  • 连接函数:GAMs 可以使用不同的连接函数来适应不同类型的响应变量,例如二项式分布(用于分类问题)、泊松分布(用于计数数据)等

5.3 应用

GAMs 在许多领域都有应用,特别是在以下情况:

  • 当响应变量和预测变量之间的关系是非线性时
  • 当数据包含多个预测变量,每个变量可能都有不同的影响模式时
  • 当需要模型具有良好的解释性时

实践步骤

在 Python 中,可以使用 pygam 库来实现 GAMs

import pygam
import numpy as np
# 假设X是输入特征,y是响应变量
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 6, 5, 5, 12])
# 创建一个GAM模型
gam = pygam.GAM(pygam.s(0, n_splines=10))  # 使用10个样条来平滑第一个特征
# 拟合模型
gam.fit(X, y)
# 预测新数据
X_new = np.array([[6]])
y_pred = gam.predict(X_new)
print(f"预测值: {y_pred}")

输出结果:
在这里插入图片描述

5.4 注意事项

  • 过拟合风险:由于 GAMs 的灵活性,它们可能会在训练数据上过拟合。因此,需要适当的正则化(例如通过选择样条的数量)和交叉验证
  • 计算成本:与线性模型相比,GAMs 的计算成本可能更高,特别是在处理大量数据和高维特征时

5.5 总结

GAMs 是一种强大的统计工具,可以用于捕捉复杂的非线性关系,同时保持模型的解释性。正确地使用和解释 GAMs 需要一定的统计知识和实践经验

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2097141.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

强制结束输入的方法

如果scanf要求输入两个数,现在只输入一个数,想要结束输入该怎么办呢? 此时如果按空格、TAB和Enter键都是无法结束输入的。 之前在“用恋爱脑搞懂scanf的返回值”一文中讲过, Windows的输入结束信号是Ctrl+Z&#xff…

ParallelsDesktop19可在任何Mac上运行Windows软件

ParallelsDesktop19是一款Mac虚拟机软件,可在任何Mac上运行Windows,体验不同操作系统之间的无缝集成,并具有创新设计和增强功能,如无密码登录与TouchID、支持macOSSonoma14和增强打印选项。此外,它还支持运行更多Windo…

day40(8/30)——使用docker部署project-exam-system

一、回顾 1、使用harbao仓库 1. Python -- version 2. yum -y update 3. yum -y install python2-pip 4. pip install --upgrade pip20.3 -i https://mirrors.aliyun.com/pypi/simple 5. pip install docker-compose -i https://mirrors.aliyun.com/pypi/simple 6. sou…

安宝特科技 | AR眼镜在安保与安防领域的创新应用及前景

随着科技的不断进步,增强现实(AR)技术逐渐在多个领域展现出其独特的优势,尤其是在安保和安防方面。AR眼镜凭借其先进的功能,在机场、车站、海关、港口、工厂、园区、消防局和警察局等行业中为安保人员提供了更为高效、…

KinectFusion

1.KinectFusion 笔记来源: 论文地址:KinectFusion: Real-time 3D Reconstruction and Interaction Using a Moving Depth Camera* 项目地址:github/KinectFusion [1] 截断符号距离 | TSDF, Truncated Signed Distance Function 本篇对Kinec…

零跑C11 S01 T03 路特斯EMEYA繁花ELETRE启辰D60EVPLUS维修手册电路图资料更新

经过整理,零跑C11 S01 T03 路特斯EMEYA繁花ELETRE启辰D60EVPLUS已经更新至汽修帮手资料库内,覆盖市面上99%车型,包括维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针脚定义、模块传…

tomcat redis minio nginx windows开机自启

tomcat 开机自启 命令 service.bat install 控制台输入 service.bat install 再到服务中去查看有没有注册成功,minio,redis,nginx 也是一样在服务里查看注册成功没 redis 开机自启 命令 redis-server.exe --service-install redis.windows.conf --loglevel ve…

CT转化MR图像的算法及模型解决

将CT(Computed Tomography)图像转化为MR(Magnetic Resonance)图像是一个复杂的图像处理任务,因为CT和MR图像是基于完全不同的物理原理获取的。CT图像主要反映组织的密度差异,而MR图像则反映组织的质子密度、…

python 遍历文件夹中的文件

上代码: import os# 设置要遍历的文件夹路径 folder_path utils# 遍历文件夹 for dirname, subdirs, files in os.walk(folder_path):print(fFound directory: {dirname})for file in files:print(f{os.path.join(dirname, file)} is a file)# 如果需要遍历子文件…

探索存储世界:TF卡与SD卡的奥秘

在这个数字化时代,数据存储变得至关重要。TF卡(TransFlash卡)和SD卡(Secure Digital卡)作为两种常见的存储介质,它们在我们的日常生活中扮演着重要角色。MK米客方德将带您深入了解TF卡的基本概念&#xff0…

netcore高级知识点,内存对齐,原理与示例

最近几年一直从事物联网开发,与硬件打交道越来越多,发现越接近底层开发对性能的追求越高,毕竟硬件资源相对上层应用来实在是太缺乏了。今天想和大家一起分享关于C#中的内存对齐,希望通过理解和优化内存对齐,可以帮助大…

深度学习模型量化方法

深度学习模型量化方法 (qq.com)

【hot100篇-python刷题记录】【回文链表】

R7-链表篇 思路: 转回文数组法 链表转数组,再使用双指针判断是不是回文数组即可。 wkao?!根本不用双指针判断是否回文数组,只需要倒序判断布尔值即可。(牛啊牛啊) # Definition for singly-linked list. # class…

LIN总线CAPL函数—— 更新特定报文数据(linUpdateResponse)

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…

激光测距模组光轴调试怎么调

激光测距模组作为精密的测量工具,其光轴调试是确保测量精度的重要环节。正确调试光轴不仅能够提升测量的准确性,还能延长设备的使用寿命。以下将由鑫优威给大家详细介绍激光测距模组光轴调试的步骤及注意事项。 一、准备工作 在进行光轴调试前&#xff0…

[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-24 TPG图像测试数据发生器设计

软件版本:VIVADO2021.1 操作系统:WIN10 64bit 硬件平台:适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA 实验平台:米联客-MLK-H3-CZ08-7100开发板 板卡获取平台:https://milianke.tmall.com/ 登录“米联客”FPGA社区 http…

非标机械设计项目“规范”笔记

2.自动化设备开发特点与技术文件输出 2.1自动化设备 自动化设备 工业自动化设备类型:标准自动化、非标自动化 载具和治具 焊接治具---汽车行业用的多 压装、压合治具---3C行业 治具种类: 电木:测试治具箱体&#xf…

Mac系统App打包成dmg文件总结

使用软件:BetterZip 操作步骤如下: 打开BetterZip 将想要打包的App拖入当前界面 选中文件点击文件-另存为 修改保存位置和压缩格式,点击存储即可 保存完成后修改文件名即可

关联模块的查询列表勾选数据,新建带出勾选数据

在模块找到页面拓展,新建按钮,代码在链接目标地址中写 获取当前勾选数据的id,将ID拼接到弹窗地址上 var CheckedCheckboxId _xtable_CheckedCheckboxId();//勾选中的checkid var result CheckedCheckboxId.replace(/^,|,$/g, ""); window.ope…

哪种类型的耳机不伤耳朵?五款口碑绝佳机型安利!

​要说最不伤耳朵的耳机,那肯定得是开放式耳机了!开放式耳机现在超火,因为它们戴起来舒服,音质又棒,让喜欢音乐和运动的朋友们超爱。特别是那些边运动边听歌的人,开放式耳机简直是完美。它们戴着稳&#xf…