Was ist Rastersuche?

In diesem Artikel soll erklärt werden, was die Gittersuche ist und wie wir damit optimale Werte von Modellhyperparametern erhalten können.

Ich werde alle erforderlichen Konzepte in einfachen Begriffen erklären und erläutern, wie wir die Rastersuche in Python implementieren können.

Foto von Evgeni Tcherkasski auf Unsplash

Der Einfachheit halber können wir die analytischen Aspekte eines Data-Science-Projekts in drei Teile unterteilen:

  1. Im ersten Teil geht es darum, die benötigten Daten zu sammeln und die Funktionen zu entwickeln.

2. Der zweite Teil dreht sich um die Auswahl des richtigen maschinellen Lernmodells.

3. Der letzte Teil dreht sich um die Suche nach den optimalen Hyperparametern.

Lassen Sie uns den dritten Teil besser verstehen, denn das Abstimmen von Hyperparametern gilt nicht nur als schwarze Kunst, sondern ist auch eine langwierige Aufgabe, die Zeit und Mühe kostet.

In diesem Artikel soll erklärt werden, was die Gittersuche ist und wie wir optimale Werte für Modell-Hyperparameter erhalten können.

Hier kann die Gittersuche äußerst hilfreich sein, da sie uns helfen kann, die optimalen Werte auf elegante Weise zu bestimmen.

Was ist ein Hyperparameter?

Ein Modell für maschinelles Lernen hat mehrere Parameter, die nicht durch den Trainingssatz trainiert werden. Diese Parameter steuern die Genauigkeit des Modells. Daher sind die Hyperparameter in einem Data-Science-Projekt besonders wichtig.

Die Hyperparameter werden im Voraus konfiguriert und vom Aufrufer des Modells bereitgestellt, bevor das Modell trainiert wird.

Die Lernrate eines neuronalen Netzes ist beispielsweise ein Hyperparameter, da sie vom Aufrufer festgelegt wird, bevor die Trainingsdaten in das Modell eingespeist werden. Andererseits sind die Gewichte eines neuronalen Netzes keine Hyperparameter, da sie durch den Trainingsdatensatz trainiert werden.

Betrachten wir ferner das Modell der Support Vector Classification (SVC), das zur Klassifizierung von Datensätzen verwendet wird. Es gibt eine Reihe von Hyperparametern, die das Modell benötigt.

Die Scikit-Learn-Bibliotheksversion von SVC kann mit einer großen Anzahl von Hyperparametern eingerichtet werden, einige der üblichen Parameter sind:

  1. C: Dies ist ein Regulierungsparameter
  2. Kernel: Wir können den Kernel-Parameter auf linear, poly, rbf, sigmoid, precomputed setzen oder einen eigenen Callable bereitstellen.
  3. Grad: Wir können einen benutzerdefinierten Grad zur Unterstützung des Poly-Kernel-Parameters übergeben.
  4. Gamma: Dies ist der Koeffizient für rbf-, poly- und sigmoide Kernelparameter.
  5. Max_Iter: Dies ist die maximale Anzahl von Iterationen für den Solver.

Angenommen, wir wollen das SVC-Modell verwenden (aus welchem Grund auch immer). Die Einstellung der optimalen Werte der Hyperparameter kann schwierig und ressourcenaufwändig sein. Stellen Sie sich vor, wie viele Permutationen wir benötigen, um die besten Parameterwerte zu ermitteln.

Hier kommt die Gittersuche ins Spiel.

Was ist die Gittersuche?

Die Gittersuche ist eine Tuning-Technik, die versucht, die optimalen Werte von Hyperparametern zu berechnen. Es handelt sich um eine erschöpfende Suche, die für die spezifischen Parameterwerte eines Modells durchgeführt wird. Das Modell wird auch als Schätzer bezeichnet.

Die Gittersuche kann uns Zeit, Mühe und Ressourcen sparen.

Python-Implementierung

Wir können die Gittersuche in Python verwenden, indem wir die folgenden Schritte durchführen:

Installieren Sie die sklearn-Bibliothek

pip install sklearn

Importieren Sie die sklearn-Bibliothek

from sklearn.model_selection import GridSearchCV

Importieren Sie Ihr Modell

from sklearn.svm import SVC

Erstellen Sie eine Liste von Hyperparametern im Wörterbuch

Dies ist der wichtigste Schritt.

Angenommen, wir wollen die optimalen Hyperparameterwerte für:

  • den Kern finden: Wir wollen, dass das Modell sich selbst auf den folgenden Kernen trainiert und uns den besten Wert unter linearen, poly, rbf, sigmoid und vorberechneten Werten liefert
  • C: Wir wollen, dass das Modell die folgenden Werte von C ausprobiert:
  • max_iter: das Modell soll die folgenden Werte von max_iter: verwenden und uns den besten Wert liefern.

Wir können das erforderliche Wörterbuch erstellen:

parameters = , 
'C': ,
'max_iter': }]

Instantiieren Sie GridSearchCV und übergeben Sie die Parameter

clf = GridSearchCV(
SVC(), parameters, scoring='accuracy'
)
clf.fit(X_train, y_train)

Hinweis: Wir haben uns entschieden, zur Bewertung der Leistung das Maß für die Genauigkeit zu verwenden.

Drucken Sie schließlich die besten Parameter aus:

print(clf.best_params_)

Das war’s.

Wir erhalten nun die optimalen Werte der Hyperparameter.

Die ausgewählten Parameter sind diejenigen, die den Präzisionswert maximieren.

Zusammenfassung

In diesem Artikel wurde erklärt, wie man die Rastersuche verwendet, um optimale Hyperparameter für ein maschinelles Lernmodell zu erhalten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.