[PYTHON] Was ist Hyperparameter-Tuning?

Einführung

Die Hyperparameter-Abstimmung ist eine Technik, mit der die Genauigkeit des Modells verbessert wird. Wenn Sie ein Modell mit scikit-learn erstellen und keine Parameter festlegen, wird es mit der entsprechenden Komplexität festgelegt.

Was ist ein Hyperparameter?

Es ist ein Parameter, der vor dem Training festgelegt wird und die Trainingsmethode, Geschwindigkeit und Modellkomplexität bestimmt.

Methode (Typ)

bergstra12a-04.jpg Quelle: http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf

Rastersuche

Es ist eine Methode, Kandidaten für jeden Parameter zu bestimmen und alle Kombinationen davon auszuprobieren. Da alle ausprobiert werden, ist es nicht möglich, die Anzahl der Parameterkandidaten zu erhöhen.

Zufällige Suche

Es ist eine Methode, Kandidaten für jeden Parameter zu bestimmen und eine zufällige Kombination von Parametern n-mal zu wiederholen. Es ist möglicherweise nicht möglich, nach einer besseren Kombination von Parametern zu suchen, da wir nicht alle ausprobieren.

Parameterkombination

import numpy as np

params_list01 = [1, 3, 5, 7]
params_list02 = [1, 2, 3, 4, 5]

#Rastersuche
grid_search_params = []
for p1 in params_list01:
    for p2 in params_list02:
        grid_search_params.append(p1, p2)
# append():Fügen Sie am Ende der Liste ein Element hinzu

#Zufällige Suche
random_search_params = []
count = 10
for i in range(count):
    p1 = np.random.choice(params_list01)  # random.choice():Holen Sie sich den Inhalt des Arrays zufällig
    p2 = np.random.choice(params_list02)
    random_search_params.append(p1, p2)

scikit-learn

Klicken Sie hier, um eine Referenz zum Scikit-Lernen zu erhalten

from sklearn.model_selection import GridSearchCV, RandomizedSearchCV
params = {
    "max_depth": [2, 4, 6, 8, None],
    "n_estimators": [50,100,200,300,400,500],
    "max_features": range(1, 11),
    "min_samples_split": range(2, 11),
    "min_samples_leaf": range(1, 11)
}

#Rastersuche
gscv = GridSearchCV(RandomForestRegressor(), params, cv=3, n_jobs=-1, verbose=1)
gscv.fit(X_train_valid, y_train_valid)
            
print("Best score: {}".format(gscv.best_score_))
print("Best parameters: {}".format(gscv.best_params_))

#Zufällige Suche
rscv = RandomizedSearchCV(RandomForestRegressor(), params, cv=3, n_iter=10, n_jobs=-1, verbose=1)
rscv.fit(X_train_valid, y_train_valid)
            
print("Best score: {}".format(rscv.best_score_))
print("Best parameters: {}".format(rscv.best_params_))

abschließend

Bei der Frage, welche übernommen werden soll, wird eine zufällige Suche durchgeführt. Es scheint, dass eine gute Kombination von Parametern effizient gefunden werden kann.

Referenz

Buch: Datenanalysetechnologie, die mit Kaggle gewinnt (Technical Review)

Recommended Posts

Was ist Hyperparameter-Tuning?
Hyper-Parameter-Tuning
Hyper Parameter Tuning 2
Was ist ein Namespace?
Was ist copy.copy ()
Was ist dotenv?
Was ist Linux?
Was ist klass?
Was ist SALOME?
Was ist Linux?
Was ist Python?
Was ist Hyperopt?
Was ist Linux?
Was ist Pyvenv?
Was ist __call__?
Was ist Linux?
Was ist Python?
Was ist eine Distribution?
Was ist Piotroskis F-Score?
Was ist Raspberry Pi?
[Python] Was ist Pipeline ...
Was ist das Calmar-Verhältnis?
Was ist ein Terminal?
[PyTorch Tutorial ①] Was ist PyTorch?
Was ist ein Hacker?
Was ist JSON? .. [Hinweis]
Wofür ist Linux?
Was ist ein Zeiger?
Was ist Ensemble-Lernen?
Was ist TCP / IP?
Was ist Pythons __init__.py?
Was ist ein Iterator?
Was ist UNIT-V Linux?
[Python] Was ist virtualenv?
Was ist maschinelles Lernen?
Was ist Mini Sam oder Mini Max?
Was ist eine logistische Regressionsanalyse?
Was ist die Aktivierungsfunktion?
Was ist eine Instanzvariable?
Was ist ein Entscheidungsbaum?
Was ist ein Kontextwechsel?
Was ist Google Cloud Dataflow?
[DL] Was ist Gewichtsverlust?
[Python] Python und Sicherheit - is Was ist Python?
Was ist ein Superuser?
Wettbewerbsprogrammierung ist was (Bonus)
[Python] * args ** Was ist kwrgs?
Was ist ein Systemaufruf?
[Definition] Was ist ein Framework?
Was ist die Schnittstelle für ...
Was ist Project Euler 3-Beschleunigung?
Was ist eine Rückruffunktion?
Was ist die Rückruffunktion?
Was ist Ihr "Tanimoto-Koeffizient"?
Python-Grundkurs (1 Was ist Python?)
[Python] Was ist eine Zip-Funktion?
[Python] Was ist eine with-Anweisung?
Was ist eine reduzierte Rangkammregression?