Checkliste für maschinelles Lernprojekt

Bild



In diesem Beitrag habe ich eine Checkliste zusammengestellt, auf die ich mich bei der Arbeit an einem umfassenden maschinellen Lernprojekt ständig beziehe.



Warum brauche ich überhaupt eine Checkliste?



Da Sie sich mit zahlreichen Elementen eines Projekts befassen müssen (Vorbereitung, Fragen, Modelle, Optimierungen usw.), kann es leicht passieren, dass Sie den Überblick verlieren. Es führt Sie durch die nächsten Schritte und veranlasst Sie zu überprüfen, ob jede Aufgabe erfolgreich abgeschlossen wurde oder nicht.



Manchmal versuchen wir, einen Ausgangspunkt zu finden. Eine Checkliste hilft Ihnen dabei, die richtigen Informationen (Daten) aus den richtigen Quellen zu extrahieren, um Beziehungen herzustellen und Korrelationsideen aufzudecken.



Es wird empfohlen, dass jeder Teil des Projekts das Überprüfungsparadigma durchläuft.



Wie Atul Gawande in seinem Buch "The Checklist Manifesto" sagt,

Der Umfang und die Komplexität unseres Wissens haben unsere individuelle Fähigkeit übertroffen, Leistungen korrekt, sicher und zuverlässig zu erbringen.

Lassen Sie sich von mir durch diese klare und präzise Liste von Maßnahmen führen, die Ihre Arbeitsbelastung verringern und Ihre Ergebnisse verbessern ...

Checkliste für maschinelle Lernprojekte



Hier sind 8 Schritte, die Sie in fast jedem Projekt befolgen sollten. Einige der Schritte können in der Reihenfolge austauschbar ausgeführt werden.



1. Definieren Sie das Problem aus einer übergeordneten Perspektive



Dies dient dazu, die Geschäftslogik des Problems zu verstehen und zu formulieren. Dies sollte Ihnen sagen:



  • die Art des Problems (kontrolliert / unkontrolliert, Klassifizierung / Regression),
  • die Art der Lösungen, die Sie entwickeln können
  • Welche Metriken sollten Sie verwenden, um die Leistung zu messen?
  • Ist maschinelles Lernen der richtige Ansatz zur Lösung dieses Problems?
  • manueller Ansatz zur Lösung des Problems.
  • inhärente Voraussetzungen für das Problem


2. Definieren Sie Datenquellen und rufen Sie Daten ab



In den meisten Fällen kann dieser Schritt vor dem ersten Schritt ausgeführt werden, wenn Sie über die Daten verfügen und die Fragen (Probleme) identifizieren möchten, um die Eingabedaten besser nutzen zu können.



Basierend auf Ihrer Problemdefinition müssen Sie die Datenquellen identifizieren, die Datenbank, Data Warehouse, Sensoren usw. sein können. Um eine Anwendung für die Produktion bereitzustellen, muss dieser Schritt automatisiert werden, indem Datenpipelines entwickelt werden, mit denen eingehende Daten in das System gelangen können.



  • Listen Sie die Quellen und die Datenmenge auf, die Sie benötigen.
  • Überprüfen Sie, ob der Standort ein Problem darstellt.
  • Überprüfen Sie, ob Sie die Daten für Ihre Zwecke verwenden dürfen oder nicht.
  • Holen Sie sich die Daten und konvertieren Sie sie in ein funktionsfähiges Format.
  • Datentyp prüfen (Text, kategorial, numerisch, Zeitreihen, Bilder)
  • Wählen Sie eine Probe für den endgültigen Test aus.


3. Erste Datenexploration



In dieser Phase untersuchen Sie alle Funktionen, die sich auf Ihr Ergebnis / Ihre Prognose / Ihr Ziel auswirken. Wenn Sie über eine große Datenmenge verfügen, versuchen Sie diesen Schritt, um Ihre Analyse übersichtlicher zu gestalten.



Schritte:



  • Verwenden Sie Notebook Jupyter, da es eine einfache und intuitive Oberfläche zum Durchsuchen von Daten bietet.
  • Definieren Sie die Zielvariable
  • Feature-Typen definieren (kategorial, numerisch, Text usw.)
  • Analysieren Sie die Beziehung zwischen Merkmalen.
  • Fügen Sie mehrere Datenvisualisierungen hinzu, um die Auswirkungen der einzelnen Features auf die Zielvariable einfach zu interpretieren.
  • dokumentieren Sie Ihre Forschungsergebnisse.


4. Explorative Datenanalyse zur Datenaufbereitung



Es ist an der Zeit, auf die Lehren aus dem vorherigen Schritt zurückzugreifen, indem Funktionen für Datentransformation, Bereinigung, Funktionsauswahl / -design und Skalierung definiert werden.



  • Schreiben von Funktionen zum Transformieren von Daten und Automatisieren des Prozesses für kommende Datenpakete.
  • Schreibfunktionen zum Bereinigen von Daten (Eingabe fehlender Werte und Behandlung von Ausreißern)
  • Schreibfunktionen zum Auswählen und Entwerfen von Features - Entfernen Sie redundante Features, formatieren Sie Objekttransformationen und andere mathematische Transformationen.
  • Funktionsskalierung - Standardisierung von Funktionen.


5. Entwickeln Sie ein Grundmodell und untersuchen Sie dann andere Modelle, um das beste auszuwählen



Erstellen Sie ein sehr einfaches Modell, das als Grundlage für alle anderen komplexen Modelle des maschinellen Lernens dienen soll. Checkliste der Schritte:



  • Trainieren Sie mehrere häufig verwendete Modelle wie das naive Bayes-Modell, das lineare Regressionsmodell, SVM usw. mit den Standardparametern.
  • Messen und vergleichen Sie die Leistung jedes Modells mit dem Basismodell und mit allen anderen.
  • Verwenden Sie die N-fache Kreuzvalidierung für jedes Modell und berechnen Sie den Mittelwert und die Standardabweichung der N-fachen Leistungsmetriken.
  • Entdecken Sie die Funktionen, die den größten Einfluss auf das Ziel haben.
  • Analysieren Sie die Arten von Fehlern, die Modelle bei der Vorhersage machen.
  • Design funktioniert anders.
  • Wiederholen Sie die obigen Schritte mehrmals (durch Ausprobieren), um sicherzustellen, dass wir die richtigen Funktionen im richtigen Format verwenden.
  • Wählen Sie die Topmodelle anhand ihrer Leistungsmetriken aus.


6. Optimieren Sie Ihre Modelle anhand der Auswahlliste und suchen Sie nach Ensemble-Methoden



Dies sollte einer der entscheidenden Schritte sein, wenn Sie sich Ihrer endgültigen Entscheidung nähern. Wichtige Punkte sollten sein:



  • Hyperparameter-Tuning mittels Kreuzvalidierung.
  • Verwenden Sie Auto-Tuning-Techniken wie Zufallssuche oder Rastersuche, um die beste Konfiguration für Ihre Topmodelle zu finden.
  • Testensemble von Methoden wie Stimmenklassifikator usw.
  • Testen Sie die Modelle mit möglichst vielen Daten.
  • Verwenden Sie nach Abschluss der Arbeiten das zu Beginn beiseite gelegte Testmuster, um zu prüfen, ob es gut passt oder nicht.


7. Dokumentieren Sie Ihren Code und kommunizieren Sie Ihre Lösung



Der Kommunikationsprozess ist vielfältig. Sie müssen alle bestehenden und potenziellen Stakeholder berücksichtigen. Daher umfassen die Hauptpunkte:



  • Dokumentieren Sie Ihren Code sowie Ihre Herangehensweise an das gesamte Projekt.
  • Erstellen Sie ein Dashboard wie voila oder eine aufschlussreiche Präsentation mit selbsterklärenden Grafiken.
  • Schreiben Sie einen Blog / Bericht darüber, wie Sie Funktionen analysiert, verschiedene Transformationen getestet usw. haben. Beschreiben Sie Ihre Lernkurve (Fehler und Methoden, die funktioniert haben).
  • Beenden Sie mit dem Hauptergebnis und dem zukünftigen Volumen (falls vorhanden)


8. Stellen Sie Ihr Modell für die Produktion und Überwachung bereit



Wenn für Ihr Projekt Bereitstellungstests für reale Daten erforderlich sind, müssen Sie eine Webanwendung oder REST-API für die Verwendung auf allen Plattformen (Web, Android, iOS) erstellen. Wichtige Punkte (variieren je nach Projekt) sind:



  • Speichern Sie Ihr endgültig trainiertes Modell in einer h5- oder Pickle-Datei.
  • Wenn Sie Ihr Modell mit Webdiensten bereitstellen, können Sie diese Webdienste mit Flask entwickeln.
  • Schließen Sie Eingangsquellen an und richten Sie ETL-Pipelines ein.
  • Verwalten von Abhängigkeiten mit pipenv, docker / Kubernetes (basierend auf den Skalierungsanforderungen)
  • Sie können AWS, Azure oder Google Cloud Platform verwenden, um Ihren Dienst bereitzustellen.
  • Führen Sie eine Leistungsüberwachung für reale Daten durch oder nur, damit Benutzer Ihr Modell mit ihren Daten verwenden können.


Hinweis. Die Checkliste kann je nach Komplexität Ihres Projekts angepasst werden.



Bild



In den kostenpflichtigen Online-Kursen von SkillFactory erfahren Sie, wie Sie einen hochkarätigen Beruf von Grund auf neu aufbauen oder Ihre Fähigkeiten und Ihr Gehalt verbessern können:






Weiterlesen






All Articles