让我们从考虑一维数据开始,即. 在 OLS 回归中,我们将学习函数
在哪里是数据点和是权重向量。实现多项式拟合度,我们将前面的表达式修改为
在哪里是多项式的次数。我们将使用一组基函数重写这个表达式为
其中和。我们只需将此转换应用于每个数据点以获得新的数据集。然后我们对这个数据集使用线性回归,得到权重和非线性预测器它是原始观察空间中的多项式(非线性)函数。笔记
这是如何运作的?谁能给我一个例子并简单地向我解释一下吗?我将如何在 Numpy 中实现这一点?
让我们从考虑一维数据开始,即. 在 OLS 回归中,我们将学习函数
在哪里是数据点和是权重向量。实现多项式拟合度,我们将前面的表达式修改为
在哪里是多项式的次数。我们将使用一组基函数重写这个表达式为
其中和。我们只需将此转换应用于每个数据点以获得新的数据集。然后我们对这个数据集使用线性回归,得到权重和非线性预测器它是原始观察空间中的多项式(非线性)函数。笔记
这是如何运作的?谁能给我一个例子并简单地向我解释一下吗?我将如何在 Numpy 中实现这一点?
这很容易理解(并使用矩阵来实现)。
考虑一个具体的例子(稍后概括)。你有一个单一特征的多项式函数):
您可以在向量中组织系数和特征,并通过标量积获得:
因此。
这只不过是一个多特征线性回归,其中第个特征现在次方。
在 numpy 中,假设您有一个 data 数组x。
要创建上面的向量,您可以这样做(例如,对于)
X = np.ones((len(x), 4))
X[:,1] = x
X[:,2] = np.power(x,2)
X[:,3] = np.power(x,3)
然后使用 sklearn LinearRegression,
model = LinearRegression()
model.fit(X, y)
更新:sklearn最近引入了 In PolynomialFeatures,它精确地执行了我在 numpy 中描述的转换(你在 numpy 中问过,但这也可能有用)。