我有许多(y_i, (a_i, b_i, c_i))
样本,其中y
可能会在一定程度上作为a,b,c
中的多项式而变化。例如,对于给定的数据集和2级,我可能会生成模型y = a^2 + 2ab - 3cb + c^2 +.5ac
这可以使用最小二乘法完成,并且是numpy的polyfit例程的略微扩展。 Python生态系统中某处是否有标准实现?
最佳答案
sklearn提供了一种简单的方法。
构建示例发布here:
#X is the independent variable (bivariate in this case)
X = array([[0.44, 0.68], [0.99, 0.23]])
#vector is the dependent data
vector = [109.85, 155.72]
#predict is an independent variable for which we'd like to predict the value
predict= [0.49, 0.18]
#generate a model of polynomial features
poly = PolynomialFeatures(degree=2)
#transform the x data for proper fitting (for single variable type it returns,[1,x,x**2])
X_ = poly.fit_transform(X)
#transform the prediction to fit the model type
predict_ = poly.fit_transform(predict)
#here we can remove polynomial orders we don't want
#for instance I'm removing the `x` component
X_ = np.delete(X_,(1),axis=1)
predict_ = np.delete(predict_,(1),axis=1)
#generate the regression object
clf = linear_model.LinearRegression()
#preform the actual regression
clf.fit(X_, vector)
print("X_ = ",X_)
print("predict_ = ",predict_)
print("Prediction = ",clf.predict(predict_))
这是输出:
>>> X_ = [[ 0.44 0.68 0.1936 0.2992 0.4624]
>>> [ 0.99 0.23 0.9801 0.2277 0.0529]]
>>> predict_ = [[ 0.49 0.18 0.2401 0.0882 0.0324]]
>>> Prediction = [ 126.84247142]
关于python - numpy的多元多项式回归,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10988082/