2015-09-16 13 views
24

Vorrei ignorare gli avvisi di tutti i pacchetti mentre sto insegnando, ma scikit-learn sembra aggirare l'uso del pacchetto warnings per controllarlo. Ad esempio:Eliminazione di avvisi da scikit-learn

with warnings.catch_warnings(): 
    warnings.simplefilter("ignore") 
    from sklearn import preprocessing 

/usr/local/lib/python3.5/site-packages/sklearn/utils/fixes.py:66: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() instead 
    if 'order' in inspect.getargspec(np.copy)[0]: 
/usr/local/lib/python3.5/site-packages/sklearn/utils/fixes.py:358: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() instead 
    if 'exist_ok' in inspect.getargspec(os.makedirs).args: 

Sto usando questo modulo in modo errato o sklearn sta facendo qualcosa che non dovrebbe?

+0

Le domande è stato risposto molto bene in un altro StackOverflow [post] (http://stackoverflow.com/questions/879173/how-to- ignore-deprecation-warnings-in-python) – San

+5

Questo problema è diverso da quello nel post menzionato da @San, ed è ** non ** un duplicato come indicato sopra Una risposta corretta è data di seguito da @ joshterrell805 - È un problema di 'sklearn': impongono avvisi di deprecazione – davalo

risposta

23

Mi dà fastidio all'estremo che sklearn forces warnings.

ho iniziato ad usare questo nella parte superiore del main.py:

def warn(*args, **kwargs): 
    pass 
import warnings 
warnings.warn = warn 

#... import sklearn stuff... 
19

Hanno changed their warning policy in 2013. È possibile ignorare gli avvertimenti (anche alcuni modelli) con qualcosa di simile:

import warnings 
warnings.filterwarnings("ignore", category=DeprecationWarning) 
+4

L'ho provato ma non ha funzionato. Il mio ambiente di codifica è anaconda python 3.4 windows 10 –

+0

Difficile giudicare perché si verificano problemi, senza conoscere ulteriori dettagli. Tuttavia, la mia ipotesi sarebbe che l'ordine di importazione è in difetto. Prova due cose: inserire il codice di avvertenze sopra subito dopo aver importato il modulo che genera DeprecationWarnings. Se questo non aiuta, prova a mettere il codice dopo tutte le altre importazioni. Questo dovrebbe essere sufficiente per risolvere il problema o eliminare l'ordine di importazione come problema. – Zakum

+1

Mi piace anche la categoria – CodingYourLife