什么是多元自适应回归样条
"多元自适应回归样条"(Multivariate Adaptive Regression Splines,简称MARS)是一种用于建模和预测的非线性回归方法。MARS基于样条函数的概念,可以自适应回归到数据中的非线性关系。
-
多元(Multivariate): 表示MARS可以处理多个自变量(特征)的情况。这使得MARS能够应对包含多个输入变量的复杂数据集。
-
自适应回归(Adaptive Regression): MARS能够自动地适应数据中的非线性关系。与线性回归模型不同,MARS可以在模型中引入非线性的拟合,从而更好地捕捉数据中的模式。
-
样条(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),即模型在训练数据上表现很好,但在新数据上的泛化能力较差。
一般来说,为了避免过度拟合,可以使用一些模型选择的方法,如交叉验证,来选择适当数量的基函数。这样可以在模型复杂性和泛化性能之间取得平衡,得到更好的模型。
网友评论