Ich habe ein paar Standard-Klassifikatoren von sklearn
gebaut und es gibt einige erwartete Szenarien, in denen ich weiß, dass der Klassifikator schlecht ausgeführt wird und nichts richtig vorhersagen. Das Paket sklearn.svm wird ohne Fehler ausgeführt, löst jedoch die folgende Warnung aus.Python - Ersetzen von Warnungen durch eine einfache Nachricht
~/anaconda/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 due to no predicted samples.
'precision', 'predicted', average, warn_for)
Ich möchte diese Warnung zu unterdrücken und stattdessen mit einer Nachricht an stdout
, sagen zum Beispiel, "poor classifier performance"
zu ersetzen.
Gibt es eine Möglichkeit, warnings
im Allgemeinen zu unterdrücken?
Das funktionierte. Ich beschloss, alle Warnungen zu erfassen, die das Snippet generieren und mit einer generischen Nachricht melden konnte. 'mit warnings.catch_warnings (record = True) als w: self.clfObj.fit (self.train_x, self.train_y) self.preds = list (self.clfObj.predict (self.test_x)) Selbst .predProbabs = self.clfObj.predict_proba (self.test_x) [: 1] self.evalClassifierPerf() wenn len (w)> = 1: drucken ("Poor Classifer detected") ' –