有没有人试图验证在同一数据集上使用ElasticNet
Python 和 R 中的 scikit-learn拟合 Elastic Net 模型是否会产生相同的算术结果?glmnet
我一直在尝试参数的许多组合(因为这两个函数在传递给参数的默认值方面不同)并且还缩放数据,但似乎在两种语言之间没有产生相同的模型。有人遇到过同样的问题吗?
scikit-learn Python 中的 ElasticNet 和 R 中的 Glmnet 之间的区别
机器算法验证
机器学习
scikit-学习
网络
弹性网
2022-03-12 22:12:08
1个回答
最后我用下面的代码得到了相同的值:
Python
# normalize function that gives the same with R
def mystandardize(D):
S = np.std(D, axis=0, ddof=1)
M = np.mean(D, axis = 0)
D_norm = (D-M)/S
return [D_norm, M, S]
Y_norm_train = pd.DataFrame(mystandardize(Y_train)[0])
glmnet_regr = linear_model.ElasticNet(alpha=1, l1_ratio = 0.01,
fit_intercept = True, normalize = False, tol=0.0000001, max_iter = 100000)
glmnet_regr.fit(X_train, Y_norm_train)
R
y_norm_train <- scale(y[train_idx])
glmnet_obj_norm <- glmnet(x_train, y_norm_train, alpha=0.01, lambda = 1,
thresh = 1e-07, standardize = FALSE, intercept=TRUE, standardize.response = FALSE)
print_coef(glmnet_obj_norm)
其它你可能感兴趣的问题