python - 如何在 Python 中进行三次或更高多项式多元回归?

标签 python regression linear-regression extrapolation

我有一组数据,其中经度和纬度是自变量,温度是因变量。我希望能够执行外推以获取纬度和经度范围之外的温度值。我认为最好的方法是执行多元回归。

我知道 sklearn 具有从其 linear_model 库执行线性多元回归的功能。

from sklearn import linear_model
regr = linear_model.LinearRegression()
regr.fit('independent data', 'dependent data') 

但是,我的温度似乎与纬度或经度没有线性关系。因此,我推断的某些值似乎不正确。

我在想,我或许可以通过执行多项式多元回归而不是线性回归来改进外推法。

是否已经有一些库提供了这个功能?

最佳答案

可能最简单的方法是进行线性回归,但执行一些基本的“特征工程”并制作您自己的多项式特征。你可以看看PolynomialFeatures这可以帮助构建多项式特征数组。

作为一个基本的例子考虑这个:

# make example data
x = np.linspace(0, 10, 10)
y = x**2 + np.random.rand(len(x))*10

# make new polynomial feature
x_squared = x**2

# perform LR
LR = LinearRegression()
LR.fit(np.c_[x, x_squared], y) # np.c_ stacks the feature into a 2D array.

# evaulate the model
eval_x = np.linspace(0, 10, 100)
eval_x_squared = eval_x**2
y_pred = LR.predict(np.c_[eval_x, eval_x_squared])

# plot the result
plt.plot(x, y, 'ko')
plt.plot(eval_x, y_pred, 'r-', label='Polynomial fit')
plt.legend()

结果图如下所示:

linear_regression_with_poly_features

当然,我们必须在这个示例中手动构建我们的功能,但希望它能向您展示如何实际实现它。

关于python - 如何在 Python 中进行三次或更高多项式多元回归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54986031/

相关文章:

python - 规范化 Pandas 数据框中的数据

python - 如何在记录列表和数组时插入换行符?

regression - 对二元结果变量使用 OLS 回归

matlab - 在 MATLAB 中实现逻辑回归

python - 线性回归模型(使用梯度下降)在波士顿住房数据集上不收敛

matlab - 机器学习 - 使用批量梯度下降的线性回归

python:在嵌套字典中查找匹配值

ios - 如何在回归测试中模拟 UITouches?

r - LM 和 LME 结果的标准误

python - 安装软件包 (conda) 会导致 ImportError : Library not loaded