美文网首页
机器学习——多元自适应回归样条

机器学习——多元自适应回归样条

作者: Bioinfor生信云 | 来源:发表于2024-03-20 09:21 被阅读0次

什么是多元自适应回归样条

"多元自适应回归样条"(Multivariate Adaptive Regression Splines,简称MARS)是一种用于建模和预测的非线性回归方法。MARS基于样条函数的概念,可以自适应回归到数据中的非线性关系。

  1. 多元(Multivariate): 表示MARS可以处理多个自变量(特征)的情况。这使得MARS能够应对包含多个输入变量的复杂数据集。

  2. 自适应回归(Adaptive Regression): MARS能够自动地适应数据中的非线性关系。与线性回归模型不同,MARS可以在模型中引入非线性的拟合,从而更好地捕捉数据中的模式。

  3. 样条(Splines): 样条是一种数学函数,它在定义域的不同区间上有不同的形式。在MARS中,样条用于拟合数据中的非线性部分。MARS模型通过组合多个小段的样条来适应整个数据集。

MARS的基本思想是通过构建一系列基函数来逼近输入特征的非线性关系,然后通过组合这些基函数来形成最终的模型。在建模过程中,MARS会选择哪些基函数要素,以及它们的位置,以最好地适应数据。

基本思想

  • 多项式函数的形式如下:


  • 写成求和的形式:



# one knot
mars1 <- mda::mars(df$x, df$y, nk = 3, prune = FALSE)
p1 <- df %>%
  mutate(predicted = as.vector(mars1$fitted.values)) %>%
  ggplot(aes(x, y)) +
  geom_point(size = 1, alpha = .2) +
  geom_line(aes(y = predicted), size = 1, color = "blue") +
  ggtitle("(A) One knot")

# two knots
mars2 <- mda::mars(df$x, df$y, nk = 5, prune = FALSE)
p2 <- df %>%
  mutate(predicted = as.vector(mars2$fitted.values)) %>%
  ggplot(aes(x, y)) +
  geom_point(size = 1, alpha = .2) +
  geom_line(aes(y = predicted), size = 1, color = "blue") +
  ggtitle("(B) Two knots")

mars3 <- mda::mars(df$x, df$y, nk = 7, prune = FALSE)
p3 <- df %>%
  mutate(predicted = as.vector(mars3$fitted.values)) %>%
  ggplot(aes(x, y)) +
  geom_point(size = 1, alpha = .2) +
  geom_line(aes(y = predicted), size = 1, color = "blue") +
  ggtitle("(C) Three knots")

mars4 <- mda::mars(df$x, df$y, nk = 9, prune = FALSE)
p4 <- df %>%
  mutate(predicted = as.vector(mars4$fitted.values)) %>%
  ggplot(aes(x, y)) +
  geom_point(size = 1, alpha = .2) +
  geom_line(aes(y = predicted), size = 1, color = "blue") +
  ggtitle("(D) Four knots")

拟合基本MARS 模型

我们可以使用R包(earth)拟合直接引擎MARS 模型。

# 拟合基本 MARS 模型
mars1 <- earth(
  Sale_Price ~ .,  
  data = ames_train   
)

# 打印模型摘要
print(mars1)
summary(mars1) %>% .$coefficients %>% head(10)
plot(mars1, which = 1)
# Fit a basic MARS model
mars2 <- earth(
  Sale_Price ~ .,  
  data = ames_train,
  degree = 2
)

参数调整

有两个与我们的MARS 模型相关的重要调整参数:最大交互程度和保留在最终模型中的项数。

最大交互程度

在MARS(Multivariate Adaptive Regression Splines)中,"最大交互程度"通常是指模型中允许的最大交互阶数。MARS模型中的基本构建块是一阶基函数(一次项)和二阶基函数(二次项)。这些基函数可以用于捕捉输入特征之间的线性和二次交互关系。

最大交互程度的概念影响模型对特征之间关系的建模能力。具体来说,如果最大交互程度被设定为1,那么模型将只考虑一阶基函数,即线性关系。如果最大交互程度被设定为2,那么模型将同时考虑一阶和二阶基函数,可以捕捉到特征之间的线性和二次交互关系。

举个例子,考虑两个特征x1和x2。如果最大交互程度为1,模型可能包括类似于x1和x2的一阶基函数。如果最大交互程度为2,模型还可能包括类似于x1*x2的二阶基函数,表示x1和x2的交互关系。

在实际使用中,通过调整最大交互程度,可以在灵活性和模型复杂度之间进行权衡。增加最大交互程度可以更好地适应数据中的非线性关系,但也可能导致过拟合,特别是在数据量较小的情况下。因此,选择最大交互程度需要根据具体问题和数据集进行调整。

最终模型中的项数

在MARS(Multivariate Adaptive Regression Splines)中,最终模型中的项数是指构建模型时所使用的基函数的总数量。这些基函数可以是线性项或非线性项,是通过对数据进行逐步回归过程中动态添加的。

MARS的模型构建过程中,通过逐步添加和删除基函数,逐渐形成一个适应数据的复杂模型。每个基函数都对应于数据中的一个局部结构或关系。在这个过程中,模型的复杂性由添加的基函数数量来衡量。

模型中的项数反映了模型的灵活性和复杂性。更多的项数意味着模型可以更灵活地适应训练数据,但也可能导致过度拟合(overfitting),即模型在训练数据上表现很好,但在新数据上的泛化能力较差。

一般来说,为了避免过度拟合,可以使用一些模型选择的方法,如交叉验证,来选择适当数量的基函数。这样可以在模型复杂性和泛化性能之间取得平衡,得到更好的模型。

有需要学习机器学习的朋友欢迎交流

相关文章

  • 机器学习之逻辑回归(2)

    接机器学习之逻辑回归(1),尝试判别分析和多元自适应回归样条方法对数据集的预测能力。线性判别分析即LDA,可通过M...

  • 机器学习算法一览

    回归 普通最小二乘回归 线性回归 对数几率回归 逐步回归 多元自适应回归样条法 局部散点平滑估计 Jackknif...

  • 机器学习算法速览表

    1. 回归 普通最小二乘回归(OLSR) 线性回归 Logistic回归 逐步回归 多变量自适应回归样条曲线(MA...

  • 多元线性回归

    链接:多元线性回归 NG机器学习公开课笔记:机器学习笔记

  • 机器学习--有监督--多元自适应回归MARS

    MARS可简单理解为分段线性函数,针对某一特征变量x与响应变量y存在较为复杂的非线性关系,通过寻找合适数目(n)的...

  • 2019-02-17

    机器学习系列 机器学习100天 机器学习第1天:数据预处理 机器学习第2天:简单线性回归模型 机器学习第3天:多元...

  • 机器学习-多元线性回归

    A. 用途: 可以用来预测,由多种因素影响的结果。 B. 建立公式: C. 求解方法: 方法1. Gradient...

  • 线性回归模型

    参考:1.使用Python进行线性回归2.python机器学习:多元线性回归3.线性回归概念 线性回归模型是线性模...

  • 机器学习算法——多元线性回归

    数据来源合鲸社区-工业产生的蒸汽量预测 1.1 背景描述[http://localhost:8888/noteb...

  • QR分解与线性回归

    1 一元回归与多元回归 任何一本初级水平的计量经济学、统计学或机器学习相关书籍,都会详细推导多元线性线性回归的解,...

网友评论

      本文标题:机器学习——多元自适应回归样条

      本文链接:https://www.haomeiwen.com/subject/hwdindtx.html