Scikit-learn Python ve R'de Glmnet'te Elastik Ağ arasındaki fark


11

Herkes aynı veri setinde ElasticNetPython ve R'de scikit-learn ile bir Elastik Ağ modelinin takılmasının glmnetaynı aritmetik sonuçlar üretip üretmediğini doğrulamaya çalıştı mı ? Parametrelerin birçok kombinasyonunu deniyorum (iki fonksiyon bağımsız değişkenlere geçtikleri varsayılan değerlerde farklılık gösterdiğinden) ve verileri ölçeklendiriyor, ancak hiçbir şey iki dil arasında aynı modeli üretiyor gibi görünüyor. Aynı sorunla karşılaşan var mı?


Yanıtlar:


6

Sonunda aşağıdaki kod ile aynı değerleri aldım:

piton

# 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)

3
R paketinde kullanılan Fortran kodu için nispeten yeni bir python sarıcı var glmnet. Bu ayrıca R ile aynı sonuçları almalıdır . github.com/civisanalytics/python-glmnet
Jordi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.