Python模型目标n变量预测方程



我希望建立一个预测模型,并与我们目前的JMP模型工作。我们目前的方法是猜测一个n次多项式,然后看看哪些项不是显著的模型效应。多项式并不总是最好的,这导致了很多混乱和糟糕的模型。我们的数据可以有2到7种效果,并且总是有一个响应。

我想用python来做这件事,但是很难找到这样的包文档或在线指南。我知道如何拟合特定的n次多项式或在python中进行线性回归,但不知道如何"猜测"数据集的最佳函数类型。

我是否错过了一些明显的东西,或者我应该写一些通过各种函数类型探测的东西?精确度是最重要的。我正在使用一个小(~2000x100)数据集。

我可以在较小的训练集上进行回归,根据验证集对它们进行测试,然后对模型进行排序并选择最好的。有更好的吗?

尝试使用其他回归模型代替传统的线性模型。

你可以使用这样的多项式回归:

poly = PolynomialFeatures(degree=2)
X_ = poly.fit_transform(input_data)

你可以通过Lasso回归来约束权重

clf = linear_model.Lasso(alpha = 0.5, positive = True)
clf.fit(X_,Y_)

其中Y_是你想要训练的输出。

将alpha设置为0将其变为简单的线性回归。Alpha基本上是对较小权重的惩罚。你也可以让权值严格为正。点击这里查看

以较小的程度运行它,并执行交叉验证以检查它是否适合。

增加多项式的次数通常会导致过拟合。因此,如果你被迫使用4级或5级,这意味着你应该寻找其他模型。

你也应该看看这个问题。下面介绍如何进行曲线拟合。

ANOVA(方差分析)使用协方差来确定哪些影响在统计上显着…你不应该随意选择术语。

然而,如果你说你的数据是非同质的(即,你不应该将单个模型拟合到所有数据中),那么你可能会考虑使用scikit-learn工具包来构建一个分类器,该分类器可以选择数据的一个子集来拟合。

最新更新