[PYTHON] Überwachtes Lernen 2 Hyperparameter und Abstimmung (1)

Aidemy 2020/9/25

Einführung

Hallo, es ist ja! Obwohl es ein knuspriges literarisches System ist, interessierte ich mich für die Möglichkeiten der KI, also ging ich zur KI-Fachschule "Aidemy", um zu studieren. Ich möchte das hier gewonnene Wissen mit Ihnen teilen und habe es in Qiita zusammengefasst. Ich freue mich sehr, dass viele Menschen den vorherigen zusammenfassenden Artikel gelesen haben. Vielen Dank! Dies ist der zweite Beitrag des überwachten Lernens. Freut mich, dich kennenzulernen.

Was diesmal zu lernen ・ Über Hyperparameter -Logistische Regression, lineare SVM, nichtlineare SVM-Hyperparameter

Hyperparameter

Was ist ein Hyperparameter?

-Hyper-Parameter sind __ "Bereiche (Parameter), die angepasst werden müssen" __ im maschinellen Lernmodell. Die Parameter unterscheiden sich je nach Modelltyp. (In den folgenden Abschnitten einzeln betrachtet)

Hyperparameter der logistischen Regression

Parameter C.

Parameterstrafe

-Der Parameter penalty ist __ "Wenn das Modell zu kompliziert wird, wird die Merkmalsmenge (L1) oder das Gesamtgewicht (L2) reduziert, damit es angemessen verallgemeinert werden kann" __.

Parameter multi_class

-Der Parameter multi_class gibt __ "Verhalten bei der Durchführung mehrerer Klassenklassifikationen" __ an. -In der logistischen Regression wird sie in der binären Klassifizierung als ovr angegeben, was das Verhalten von "Zugehörigkeit zur Klasse / Nichtzugehörigkeit zur Klasse" ist. In der Mehrzeitklassifikation wird es als multinomial angegeben, was das Verhalten von "wie viel es gehören kann" ist.

Parameter random_state

-__ Random_state__ ist __ "Startwert einer Zufallszahl, die die Verarbeitungsreihenfolge von Daten bestimmt" __, und durch Festlegen dieser wird auch die Verarbeitungsreihenfolge von Daten (= Lernergebnis) festgelegt.

Lineare SVM-Hyperparameter

Jeder Parameter

-__ C__: Inhalt und Verwendung sind gleich. Änderungen des Wertes von C wirken sich jedoch stärker auf die Genauigkeitsrate aus als die logistische Regression. -__ Strafe : Entspricht der logistischen Regression. - Multi_class__: In linearer SVM können ovr und crammer_singer angegeben werden. Grundsätzlich liefert ovr bessere Ergebnisse. Darüber hinaus ist es nicht erforderlich, diesen Parameter zum Zeitpunkt der Binomialklassifizierung festzulegen. -__ Random_state__: In linearer SVM wirkt sich dieser Wert auch auf die Bestimmung des Unterstützungsvektors aus, und das Ergebnis kann sich geringfügig ändern.

Nichtlineare SVM-Hyperparameter

Parameter C.

-__ C__: Inhalt und Verwendung sind gleich. Die Strafe erfolgt jedoch durch Anpassen des Wertes von C.

Parameter Kernel

-__ Kernel__ ist ein __ Parameter, der die Kernelfunktion angibt, die für die Operation __ "Nichtlineare Klassifizierung in lineare Klassifizierung konvertieren" verwendet wird. Dies ist der Schlüssel zur Verarbeitung nichtlinearer SVM. Sie können "rbf", "poly", "linear", "sigmoid" und "vorberechnet" angeben, aber "rbf", der Standardwert mit einer hohen Genauigkeitsrate, wird häufig verwendet. ・ "Rbf" und "poly" sind stereoskopische Projektionen, "linear" ist dieselbe Operation wie lineare SVM (wird daher selten verwendet), "sigmoid" ist dieselbe Operation wie das logistische Regressionsmodell und "vorberechnet" ist bereits formatiert. Zu der Zeit verwendet.

Parameter Entscheidungsfunktion_Form

-__ Decision_function_shape__ zeigt das Verhalten bei der Entscheidung, zu welcher Klasse die Daten gehören, wie z. B. multi_class. Sie können "ovo" und "ovr" angeben. -Ovo ist eine Methode, bei der zwei Klassen zu einer zusammengefasst werden und alle Daten für alle Fälle binomialisiert werden. ovr klassifiziert (direkt), ob die Daten zu dieser Klasse gehören. Da ovo einen größeren Rechenaufwand hat, ist die Operation tendenziell schwer.

Parameter random_state

-__ Random_state__: Für nichtlineare SVC muss ein Zufallszahlengenerator separat erstellt werden.

import numpy as np
from sklearn.svm import SVC
#Erstellen eines Zufallszahlengenerators
a = np.random.RandomState()
model = SVC(random_state = a)

Zusammenfassung

-Parameter, die im Modell künstlich angepasst werden müssen, werden als hyperparameters bezeichnet, und die einzustellenden Hyperparameter unterscheiden sich je nach Modelltyp. -Logistische Regression, Hyperparameter der linearen SVM umfassen __ "C" "Strafe" "Multi_Klasse" "Zufallsstatus" __. -Hyper-Parameter von nichtlinearem SVM umfassen __ "C" "Kernel" "desicion_function_shape" "random_state" __.

Diese Zeit ist vorbei. Vielen Dank, dass Sie so weit gelesen haben.

Recommended Posts

Überwachtes Lernen 3 Hyperparameter und Abstimmung (2)
Überwachtes Lernen 2 Hyperparameter und Abstimmung (1)
Python: Überwachtes Lernen: Hyperparameter Teil 1
Maschinelles Lernen: Betreut --AdaBoost
Python: Deep Learning Tuning
Lernen mit einem Lehrer (Rückkehr) 1 Grundlagen
Python: Überwachtes Lernen (Rückkehr)
Python: Überwachtes Lernen (Klassifizierung)
Hyperparameter-Tuning mit LightGBM-Tuner
Ensemble-Lernen und Korbanalyse
Maschinelles Lernen: Überwacht - Lineare Regression
Deep Running 2 Tuning von Deep Learning
Lernen mit dem Lehrer 1 Grundlagen des Lernens mit dem Lehrer (Klassifizierung)
Maschinelles Lernen: Überwacht - Support Vector Machine
Überwachtes maschinelles Lernen (Klassifikation / Regression)
Modellbildung, Lernen und Denken lernen
Maschinelles Lernen: Überwacht - Entscheidungsbaum
Bedeutung des maschinellen Lernens und des Mini-Batch-Lernens
Random Forest (Klassifizierung) und Hyperparameter-Tuning
Organisation von Plattformen für maschinelles Lernen und tiefes Lernen
Maschinelles Lernen: Überwacht - Lineare Diskriminanzanalyse