【发布时间】:2021-12-02 08:16:50
【问题描述】:
我使用 sklearn LinearRegression()estimator,有 5 个变量
['feat1', 'feat2', 'feat3', 'feat4', 'feat5']
为了预测一个连续的值。
Estimator 返回系数值和偏差的列表:
linear = LinearRegression()
print(linear.coef_)
print(linear.intercept_)
[ 0.18799409 -0.05406106 -0.01327966 -0.13348129 -0.00614054]
-0.011064865422734674
然后,鉴于我将每个特征都作为变量,我可以将系数硬编码为线性公式并估计我的值,如下所示:
val = ((0.18799409*feat1) - (0.05406106*feat2) - (0.01327966*feat3) - (0.13348129*feat4) - (0.00614054*feat5)) -0.011064865422734674
现在假设我使用 2 次多项式回归,使用管道并通过打印:
model = Pipeline(steps=[
('scaler',StandardScaler()),
('polynomial_features', PolynomialFeatures(degree=degree, include_bias=False)),
('linear_regression', LinearRegression())])
#fit model
model.fit(X_train, y_train)
print(model['linear_regression'].coef_)
print(model['linear_regression'].intercept_)
我明白了:
[ 7.06524186e-01 -2.98605001e-02 -4.67175212e-02 -4.86890790e-01
-1.06320101e-02 -2.77958604e-03 -3.38253025e-04 -7.80563090e-03
4.51356888e-03 8.32036733e-03 3.57638244e-02 -2.16446849e-02
-7.92169287e-02 3.36809467e-02 -6.60531497e-03 2.16613331e-02
2.10097993e-02 3.49970303e-02 -3.02970698e-02 -7.81462599e-03]
0.011042927069084668
如何转换上面的公式以便从回归中计算 val,使用来自 .coef_ 和 .intercept_ 的值,使用数组索引而不是硬编码值,对于 any '度数?
有没有适合的scipy 或numpy 方法?
【问题讨论】:
标签: python numpy scikit-learn scipy