python - अजगर स्केलेर्न में फिट विधि




model scikit-learn (3)

मैं खुद को स्केलर्न में फिट विधि के बारे में विभिन्न प्रश्न पूछ रहा हूं

प्रश्न 1: जब मैं करता हूं:

from sklearn.decomposition import TruncatedSVD
model = TruncatedSVD()
svd_1 = model.fit(X1)
svd_2 = model.fit(X2)

क्या इस प्रक्रिया के दौरान जो भी मॉडल बदल रहा है, उसकी सामग्री क्या है?

प्रश्न 2: जब मैं करता हूं:

from sklearn.decomposition import TruncatedSVD
model = TruncatedSVD()
svd_1 = model.fit(X1)
svd_2 = svd_1.fit(X2)

Svd_1 को क्या हो रहा है? दूसरे शब्दों में, svd_1 पहले से ही सज्जित हो चुका है और मैं इसे फिर से फिट कर रहा हूं, तो उसके घटक के कारण क्या बढ़ रहा है?


Answers

जब आप TruncatedSVD पर fit यह घटकों को नए मैट्रिक्स से निर्मित लोगों के साथ बदल देगा। कुछ अनुमानक और ट्रांसफार्मर जैसे कि स्किकिट -इंचेटलपीसीए की तरह एक partial_fit जो अतिरिक्त डेटा जोड़कर एक मॉडल को partial_fit


प्रश्न 1: क्या इस प्रक्रिया के दौरान बदलते हुए चर मॉडल की सामग्री है?

हाँ। fit विधि ऑब्जेक्ट को संशोधित करता है। और यह ऑब्जेक्ट का एक संदर्भ देता है इस प्रकार, ध्यान रखना! पहले उदाहरण में सभी तीन चर model , svd_1 , और svd_2 वास्तव में एक ही वस्तु का संदर्भ लें।

from sklearn.decomposition import TruncatedSVD
model = TruncatedSVD()
svd_1 = model.fit(X1)
svd_2 = model.fit(X2)
print(model is svd_1 is svd_2)  # prints True

प्रश्न 2: svd_1 पर क्या हो रहा है?

model और svd_1 उसी ऑब्जेक्ट को देखें, इसलिए पहले और दूसरे उदाहरण के बीच बिल्कुल कोई अंतर नहीं है।

अंतिम टिप्पणी: दोनों उदाहरणों में क्या होता है कि fit(X1) का परिणाम fit(X2) से ओवरराइट किया गया fit(X2) , जैसा कि दाऊद मास्त द्वारा जवाब में बताया गया है। यदि आप दो अलग-अलग मॉडल के दो अलग-अलग मॉडल चाहते हैं, तो आपको कुछ ऐसा करने की आवश्यकता है:

svd_1 = TruncatedSVD().fit(X1)
svd_2 = TruncatedSVD().fit(X2)

पहले से ही व्यस्त विषय, लेकिन मैंने यहां जो पढ़ा है, उससे निम्नलिखित ने मुझे यह महसूस करने में मदद की कि यह आंतरिक रूप से कैसे काम कर रहा है:

def bar(a=[]):
     print id(a)
     a = a + [1]
     print id(a)
     return a

>>> bar()
4484370232
4484524224
[1]
>>> bar()
4484370232
4484524152
[1]
>>> bar()
4484370232 # Never change, this is 'class property' of the function
4484523720 # Always a new object 
[1]
>>> id(bar.func_defaults[0])
4484370232






python model scikit-learn