आर में स्किटिट-लर्न पायथन और ग्लमेनेट में इलास्टिकनेट के बीच अंतर


11

क्या किसी ने यह सत्यापित करने की कोशिश की है कि ElasticNetपायथन glmnetमें आर -ए- नेट के साथ एक लोचदार नेट मॉडल फिट करना और उसी डेटा सेट पर आर में समान अंकगणितीय परिणाम उत्पन्न करता है? मैं मापदंडों के कई संयोजनों के साथ प्रयोग कर रहा हूं (चूंकि दोनों फ़ंक्शन डिफ़ॉल्ट मानों में भिन्न होते हैं) और डेटा स्केलिंग भी करते हैं, लेकिन दोनों भाषाओं के बीच एक ही मॉडल का उत्पादन करने के लिए कुछ भी नहीं लगता है। क्या किसी को भी इसी मुद्दे का सामना करना पड़ा है?


जवाबों:


6

अंत में मुझे निम्नलिखित कोड के साथ समान मान मिले:

अजगर

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

आर

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
आर पैकेज में उपयोग किए जाने वाले फोरट्रान कोड के लिए अपेक्षाकृत नया अजगर आवरण है glmnet। यह भी आपको आर के समान परिणाम प्राप्त करना चाहिए । github.com/civisanalytics/python-glmnet
जोर्डि
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.