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

Python model targeting n variable prediction equation

我希望建立一个预测模型,并且正在使用我们当前的 JMP 模型。我们目前的方法是猜测一个 n 次多项式,然后查看哪些项不是显着的模型效应。多项式并不总是最好的,这会导致很多混乱和错误的模型。我们的数据可以有 2 到 7 个效果,并且总是有一个响应。

我想为此使用 python,但是很难找到此类内容的包文档或在线指南。我知道如何拟合特定的 n 次多项式或在 python 中进行线性回归,但不知道如何 'guess' 数据集的最佳函数类型。

我是不是遗漏了一些明显的东西,或者我应该写一些可以探测各种函数类型的东西?精度是最重要的。我正在处理一个小的 (~2000x100) 数据集。

可能我可以对较小的训练集进行回归,根据验证集对其进行测试,然后对模型进行排名并选择最佳模型。还有更好的吗?

ANOVA (analysis of variance) 使用协方差来确定哪些效应具有统计显着性...您不必随机选择术语。

但是,如果您说您的数据是不均匀的(即,您不应该将单个模型拟合到所有数据),那么您可以考虑使用 scikit-learn 工具包来构建一个分类器可以选择数据的一个子集来拟合。

尝试使用其他回归模型而不是原始线性模型。

您可以使用类似这样的东西进行多项式回归:

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 基本上是对较小权重的惩罚。您也可以使权重严格为正。看看这个 here.

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

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

你也应该看看这个question.这解释了你如何进行曲线拟合。