Einsteigerhandbuch zum Testen von maschinellem Lernen mit DeepChecks – TitelbildEinsteigerhandbuch zum Testen von maschinellem Lernen mit DeepChecks – Titelbild
Bild vom Autor | Canva

Tiefenchecks ist ein Python-Paket, das eine Vielzahl integrierter Prüfungen zum Testen auf Probleme mit der Modellleistung, der Datenverteilung, der Datenintegrität und mehr bietet.

In diesem Tutorial lernen wir DeepChecks kennen und verwenden es, um den Datensatz zu validieren und das trainierte maschinelle Lernmodell zu testen, um einen umfassenden Bericht zu erstellen. Wir lernen auch, Modelle anhand spezifischer Exams zu testen, anstatt vollständige Berichte zu erstellen.

Warum brauchen wir Exams für maschinelles Lernen?

Machine-Studying-Exams sind unerlässlich, um die Zuverlässigkeit, Equity und Sicherheit von KI-Modellen sicherzustellen. Sie helfen dabei, die Leistung von Modellen zu überprüfen, Verzerrungen zu erkennen, die Sicherheit gegen feindliche Angriffe, insbesondere bei Massive Language Fashions (LLMs), zu verbessern, die Einhaltung gesetzlicher Vorschriften sicherzustellen und kontinuierliche Verbesserungen zu ermöglichen. Instruments wie Deepchecks bieten eine umfassende Testlösung, die alle Aspekte der KI- und ML-Validierung von der Forschung bis zur Produktion abdeckt, was sie für die Entwicklung robuster, vertrauenswürdiger KI-Systeme von unschätzbarem Wert macht.

Erste Schritte mit DeepChecks

In dieser Anleitung für den Einstieg laden wir den Datensatz und führen einen Datenintegritätstest durch. Dieser wichtige Schritt stellt sicher, dass unser Datensatz zuverlässig und genau ist, und ebnet den Weg für ein erfolgreiches Modelltraining.

  1. Wir beginnen mit der Set up des DeepChecks Python-Pakets mit dem Befehl „pip“.
!pip set up deepchecks --upgrade
  1. Importieren Sie wichtige Python-Pakete.
  2. Laden Sie den Datensatz mit der Pandas-Bibliothek, der aus 569 Beispielen und 30 Merkmalen besteht. Krebsklassifizierung Der Datensatz basiert auf digitalisierten Bildern von Feinnadelaspirationen (FNA) von Brusttumoren, wobei jedes Merkmal eine Eigenschaft der im Bild vorhandenen Zellkerne darstellt. Diese Merkmale ermöglichen uns, vorherzusagen, ob der Krebs gutartig oder bösartig ist.
  3. Teilen Sie den Datensatz mithilfe der Zielspalte „benign_0__mal_1“ in Coaching und Take a look at auf.
import pandas as pd
from sklearn.model_selection import train_test_split

# Load Knowledge
cancer_data = pd.read_csv("/kaggle/enter/cancer-classification/cancer_classification.csv")
label_col="benign_0__mal_1"
df_train, df_test = train_test_split(cancer_data, stratify=cancer_data(label_col), random_state=0)
  1. Erstellen Sie den DeepChecks-Datensatz, indem Sie zusätzliche Metadaten angeben. Da unser Datensatz keine kategorialen Merkmale aufweist, lassen wir das Argument leer.
from deepchecks.tabular import Dataset

ds_train = Dataset(df_train, label=label_col, cat_features=())
ds_test =  Dataset(df_test,  label=label_col, cat_features=())
  1. Führen Sie den Datenintegritätstest für den Trainingsdatensatz aus.
from deepchecks.tabular.suites import data_integrity

integ_suite = data_integrity()
integ_suite.run(ds_train)

Die Erstellung des Berichts dauert einige Sekunden.

Der Datenintegritätsbericht enthält Testergebnisse zu:

  • Characteristic-Characteristic-Korrelation
  • Merkmal-Beschriftungs-Korrelation
  • Einzelner Wert in der Spalte
  • Spezielle Charaktere
  • Gemischte Nullen
  • Gemischte Datentypen
  • Zeichenfolgen-Nichtübereinstimmung
  • Datenduplikate
  • Zeichenfolgenlänge außerhalb der Grenzen
  • Widersprüchliche Bezeichnungen
  • Erkennung von Ausreißerproben

DatenvalidierungsberichtDatenvalidierungsbericht

Testen von Modellen für maschinelles Lernen

Lassen Sie uns unser Modell trainieren und dann eine Modellbewertungssuite ausführen, um mehr über die Modellleistung zu erfahren.

  1. Laden Sie die erforderlichen Python-Pakete.
  2. Erstellen Sie drei Modelle für maschinelles Lernen (Logistische Regression, Random-Forest-Klassifikator und Gaussian NB).
  3. Kombinieren Sie sie mithilfe des Abstimmungsklassifikators.
  4. Passen Sie das Ensemblemodell an den Trainingsdatensatz an.
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import VotingClassifier

# Practice Mannequin
clf1 = LogisticRegression(random_state=1,max_iter=10000)
clf2 = RandomForestClassifier(n_estimators=50, random_state=1)
clf3 = GaussianNB()

V_clf = VotingClassifier(
    estimators=(('lr', clf1), ('rf', clf2), ('gnb', clf3)),
    voting='laborious')

V_clf.match(df_train.drop(label_col, axis=1), df_train(label_col));
  1. Sobald die Trainingsphase abgeschlossen ist, führen Sie die DeepChecks-Modellbewertungssuite mit den Trainings- und Testdatensätzen und dem Modell aus.
from deepchecks.tabular.suites import model_evaluation

evaluation_suite = model_evaluation()
suite_result = evaluation_suite.run(ds_train, ds_test, V_clf)
suite_result.present()

Der Modellbewertungsbericht enthält die Testergebnisse zu:

  • Unbenutzte Funktionen – Datensatz trainieren
  • Unbenutzte Funktionen – Testdatensatz
  • Leistung des Zugtests
  • Vorhersagedrift
  • Einfacher Modellvergleich
  • Modellinferenzzeit – Datensatz trainieren
  • Modellinferenzzeit – Testdatensatz
  • Confusion Matrix Report – Trainingsdatensatz
  • Confusion Matrix-Bericht – Testdatensatz

In der Suite sind weitere Exams verfügbar, die aufgrund des Ensemble-Modelltyps nicht ausgeführt wurden. Wenn Sie ein einfaches Modell wie die logistische Regression ausgeführt haben, haben Sie möglicherweise einen vollständigen Bericht erhalten.

Modell-Evaluationsbericht DeepChecksModell-Evaluationsbericht DeepChecks

  1. Wenn Sie einen Modellauswertungsbericht in einem strukturierten Format verwenden möchten, können Sie Ihren Bericht jederzeit mit der Funktion „.to_json()“ in das JSON-Format konvertieren.

Modellauswertungsbericht zur JSON-AusgabeModellauswertungsbericht zur JSON-Ausgabe

  1. Darüber hinaus können Sie diesen interaktiven Bericht auch als Webseite speichern, indem Sie den .save_as_html() Funktion.

Ausführen der Einzelprüfung

Wenn Sie nicht die gesamte Reihe der Modellbewertungstests ausführen möchten, können Sie Ihr Modell auch mit einer einzigen Prüfung testen.

Sie können beispielsweise die Beschriftungsabweichung überprüfen, indem Sie den Trainings- und Testdatensatz bereitstellen.

from deepchecks.tabular.checks import LabelDrift
verify = LabelDrift()
outcome = verify.run(ds_train, ds_test)
outcome

Als Ergebnis erhalten Sie ein Verteilungsdiagramm und einen Drift-Rating.

Ausführen der Einzelprüfung: EtikettendriftAusführen der Einzelprüfung: Etikettendrift

Sie können sogar den Wert und die Methodik des Drift-Scores extrahieren.

{'Drift rating': 0.0, 'Technique': "Cramer's V"}

Abschluss

Der nächste Schritt auf Ihrer Lernreise besteht darin, den Testprozess für maschinelles Lernen zu automatisieren und die Leistung zu verfolgen. Sie können dies mit GitHub Actions tun, indem Sie den Tiefenprüfungen in CI/CD Führung.

In diesem anfängerfreundlichen Kurs haben wir gelernt, Datenvalidierungs- und Machine-Studying-Evaluierungsberichte mit DeepChecks zu erstellen. Wenn Sie Probleme beim Ausführen des Codes haben, schlage ich vor, dass Sie einen Blick auf die Machine-Studying-Exams mit DeepChecks Kaggle Pocket book und führen Sie es selbst aus.

Abid Ali Awan (@1abidaliawan) ist ein zertifizierter Datenwissenschaftler, der gerne Modelle für maschinelles Lernen erstellt. Derzeit konzentriert er sich auf die Erstellung von Inhalten und das Schreiben technischer Blogs zu Technologien für maschinelles Lernen und Datenwissenschaft. Abid hat einen Grasp-Abschluss in Technologiemanagement und einen Bachelor-Abschluss in Telekommunikationstechnik. Seine Imaginative and prescient ist es, mithilfe eines Graph-Neural-Networks ein KI-Produkt für Studenten zu entwickeln, die mit psychischen Erkrankungen zu kämpfen haben.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert