如何在Python中强制使用铰接函数实现MARS模型
我现在在用Python实现MARS(多元自适应回归样条)的时候遇到了一个问题。
当我这样处理我的数据:
model=Earth()
model.fit(data1,data2)
print model.summary()
它给我的结果是:
Basis Function Pruned Coefficient
(Intercept) No 1.00313
x1 Yes None
x3 Yes None
x4 Yes None
x2 Yes None
x0 Yes None
MSE: 0.0745, GCV: 0.0783, RSQ: 0.0000, GRSQ: 0.0000
但是这个拟合的结果让我不满意,感觉它只用了线性基函数。我想强制它使用其他的基函数,我该怎么做呢?
1 个回答
1
在你的例子中,MARS建立了一个只包含截距的模型。你提到的使用线性基函数的说法是不对的。注意,所有变量的系数值都是“无”。
MARS算法通过使用广义交叉验证(GCV)判断出,你的数据中没有足够的信息来可靠地将响应表示为任何变量的函数。这可能是因为预测值中的噪声相对于你的样本量来说太大了。因此,它决定对于你的数据,最好的新数据预测值就是简单地取训练响应值的平均值(不管在进行新预测时使用的预测变量值是什么)。