2015-05-25 7 views
5

जानें मेरे पास 158 पंक्तियों और 10 कॉलम वाला डेटासेट है। मैं कई रैखिक प्रतिगमन मॉडल बनाने की कोशिश करता हूं और भविष्य के मूल्य की भविष्यवाणी करने की कोशिश करता हूं।GridSearchCV सर्वश्रेष्ठ स्कोर क्यों नहीं देता है? - Scikit

मैंने गहन पैरामीटर के लिए ग्रिडशर्चसीवी का उपयोग किया।

इस कोड के
def GridSearch(data): 
    X_train, X_test, y_train, y_test = cross_validation.train_test_split(data, ground_truth_data, test_size=0.3, random_state = 0) 

    parameters = {'fit_intercept':[True,False], 'normalize':[True,False], 'copy_X':[True, False]} 

    model = linear_model.LinearRegression() 

    grid = GridSearchCV(model,parameters) 

    grid.fit(X_train, y_train) 
    predictions = grid.predict(X_test) 

    print "Grid best score: ", grid.best_score_ 
    print "Grid score function: ", grid.score(X_test,y_test) 

आउटपुट है:

ग्रिड सर्वश्रेष्ठ स्कोर: 0,720298870251

ग्रिड स्कोर समारोह: 0,888263112299

यहाँ मेरी GridSearchCV और प्रतिगमन समारोह है

मेरी ques best_score_ और score फ़ंक्शन के बीच अंतर क्या है?

score फ़ंक्शन best_score फ़ंक्शन से बेहतर कैसे हो सकता है?

अग्रिम धन्यवाद।

उत्तर

11

best_score_ क्रॉस-सत्यापन से सबसे अच्छा स्कोर है। यही है, मॉडल प्रशिक्षण डेटा के भाग पर फिट है, और शेष प्रशिक्षण डेटा की भविष्यवाणी करके स्कोर की गणना की जाती है। ऐसा इसलिए है क्योंकि आपने X_train और y_train से fit पारित किया है; fit प्रक्रिया इस प्रकार आपके परीक्षण सेट के बारे में कुछ भी नहीं जानता, केवल आपका प्रशिक्षण सेट।

score मॉडल ऑब्जेक्ट की विधि आपके द्वारा दिए गए डेटा पर मॉडल स्कोर करती है। आपने X_test और y_test पारित किया है, इसलिए यह कॉल परीक्षण सेट पर फिट (यानी, ट्यूनेड) मॉडल के स्कोर की गणना करता है।

संक्षेप में, दो अंकों की गणना विभिन्न डेटा सेटों पर की जाती है, इसलिए यह आश्चर्यजनक नहीं होना चाहिए कि वे अलग हैं।

+0

स्पष्टीकरण के लिए धन्यवाद। मेरे पास कुछ और सवाल हैं। कौन सा स्कोर r_squared के बराबर है? और भविष्य की भविष्यवाणियों के लिए कौन सा गोपनीय है? मुझे लगता है कि दूसरा 'स्कोर' लेकिन फिर भी मैं थोड़ा उलझन में हूं। –

+0

@ बटुहानबार्डक: वे आर^2 दोनों हैं। वे विभिन्न फिट बैठने के लिए आर^2 हैं। आर^2 का मान मॉडल की एक निश्चित विशेषता नहीं है; यह उस मॉडल पर निर्भर करता है जिसका उपयोग आप मॉडल को फिट करने के लिए करते थे, और डेटा जो आप भविष्यवाणी करने के लिए उपयोग कर रहे हैं। मुझे यकीन नहीं है कि "अधिक गोपनीय" से आपका क्या मतलब है। – BrenBarn

+0

दरअसल मेरी मुख्य समस्या मेरे मॉडल के लिए सबसे अच्छा आर^2 स्कोर पाती है। मेरे पास 158 उदाहरण डेटा है। प्रत्येक डेटा 'सप्ताह' का प्रतिनिधित्व करता है (यह डेटा समय-श्रृंखला डेटा है)। तो मैं 15 9 की भविष्यवाणी करने की कोशिश करता हूं। 'सप्ताह' मूल्य। तो अब मैं भविष्य के डेटा की भविष्यवाणी करने के लिए एक बेहतरीन मॉडल बनाने की कोशिश करता हूं। लेकिन मेरा आर^2 स्कोर क्या है? क्या यह '0.7202' या' 0.8882' है। मेरे मॉडल के लिए मुझे किस स्कोर पर ध्यान देना चाहिए? यदि मेरा मॉडल आर^2 '0.8882' है तो यह मेरे लिए अच्छा है लेकिन अगर नहीं, तो मुझे अपना मॉडल विकसित करना होगा। मुझे उम्मीद है, मैं समझा सकता हूं कि मैं क्या कहना चाहता हूं। @ ब्रेनबर्न –

संबंधित मुद्दे