2016-10-05 6 views
5

यह जांचने का सबसे शानदार तरीका क्या है कि स्केलेर्न मॉडल फिट किया गया है या नहीं? यानी इसके fit() फ़ंक्शन को तुरंत चालू करने के बाद बुलाया गया है या नहीं।यह जांचने का सबसे अच्छा तरीका क्या है कि स्केलर मॉडल फिट किया गया है या नहीं?

from sklearn.exceptions import NotFittedError 

for model in models: 
    try: 
     model.predict(some_test_data) 
    except NotFittedError as e: 
     print(repr(e)) 

आदर्श रूप में आप अपेक्षित परिणाम के खिलाफ model.predict के परिणामों की जाँच करेगा, लेकिन अगर सब आप जानना चाहते हैं, तो मौसम मॉडल या फिट नहीं है कि पर्याप्त होना चाहिए:

+0

मुझे यकीन नहीं है कि मैं समझता हूं कि आप क्या चाहते हैं, लेकिन 'लूप' के लिए नौकरी होगी !!! – Juggernaut

+1

बस स्पष्ट करने के लिए, नीचे दिया गया व्यक्ति पूरी तरह उत्तर दिया। – user3436624

+2

मैंने सवाल संपादित किया है ताकि यह स्पष्ट हो, क्या कोई इसे बंद कर सकता है? यह एक अच्छा सवाल है और मेरे पास एक वैकल्पिक उत्तर है जिसे मैं अभी भी बंद नहीं होने के बाद जोड़ नहीं सकता हूं। – Moot

उत्तर

3

आप की तरह कुछ कर सकते हैं।

+0

धन्यवाद, यह सही है। – user3436624

+1

@elyase sklearn के लिए सही है। अन्य हैं: 'xgboost.core आयात XGBoostError' और' lightgbm.sklearn आयात से LightGBMError', उदाहरण के लिए –

+0

@ जॉर्जफिशर: सही है, लेकिन ओपी ने विशेष रूप से sklearn निर्दिष्ट किया था। – Moot

0

यह एक लालची दृष्टिकोण है, लेकिन सभी मॉडलों के लिए यह सबसे अच्छा होना चाहिए। एकमात्र ऐसा समय जो काम नहीं कर सकता है वह उन मॉडलों के लिए है जो फिट होने से पहले अंडरस्कोर में समाप्त होने वाली विशेषता सेट करते हैं, जो मुझे यकीन है कि विज्ञान-सीखने के सम्मेलन का उल्लंघन करेगा, इसलिए यह ठीक होना चाहिए।

import inspect 

def is_fitted(model): 
     """Checks if model object has any attributes ending with an underscore""" 
     return 0 < len([k for k,v in inspect.getmembers(model) if k.endswith('_') and not k.startswith('__')]) 
संबंधित मुद्दे

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