【发布时间】:2020-09-17 00:49:43
【问题描述】:
我正在使用sklearn.linear_model.ElasticNet 模型,我试图通过设置alph = 0 和l1_ratio = 0 重新创建线性回归,但我得到的系数非常不同。有谁知道为什么?我认为使用这些参数应该可以得到常规的线性回归系数。
我的代码在下面,附件是输出的图像。
from sklearn.linear_model import ElasticNet
from sklearn.linear_model import LinearRegression
linear_model = LinearRegression().fit(xtrain, ytrain)
linear_coeffs = linear_model.coef_
enet_model = ElasticNet(alpha = 0, l1_ratio=0).fit(xtrain,ytrain)
enet_coef = enet_model.coef_
linear_model = LinearRegression().fit(xtrain, ytrain)
linear_coef = linear_model.coef_
sum_squares_coeff_diff = (np.square(enet_coef))/(np.square(linear_coef))
for i in range(len(enet_coef)):
print("enet_coef, linear_coef, ratio: %f %f %f" %(enet_coef[i],linear_coef[i],sum_squares_coeff_diff[i]))
print('ratio enet_reg sum squares coef / linear reg sum squares coef: %f' %(np.sum(np.square(enet_coef))/np.sum(np.square(linear_coef))))
(len(enet_coef),len(linear_coef)))
【问题讨论】:
-
欢迎来到 SO;请参阅How to create a Minimal, Reproducible example。
标签: python scikit-learn regression