Ab November 2019 lerne ich Python bei PyQ, habe aber tendenziell zu viele Eingaben, daher möchte ich es als Ausgabe meiner Erkenntnisse veröffentlichen.
Es gibt einige Teile, die nicht gut verstanden werden, daher denke ich, dass es viele Teile gibt, die schwer zu verstehen sind, aber ich würde gerne mein Bestes geben.
Das Hauptthema ist von hier. In einem Wort ... Teilen Sie die beiden Daten durch eine Linie!
Im Detail handelt es sich um eine Methode zur Rückkehr mit einer Sigmoidkurve (S-förmige Kurve) anstelle einer geraden Linie. Es ist cool, in Katakana Logistik zu sagen, aber es ist doch eine Linie. Die Zielvariable ist binär (z. B. 1 oder 0 oder O oder ×).
Es scheint, dass es sich nicht um ein lineares Modell handelt, da der Fehler nicht der Normalverteilung folgt ...
Es scheint, dass logistische Kurven durch logistische Gleichungen behandelt werden können, aber denken Sie diesmal, wenn Sie logistische Regression sagen, daran, dass sie durch eine gerade Linie in zwei gleiche Teile geteilt wird.
Lineare nicht trennbare Daten können auch durch logistische Regression getrennt werden, indem eine dreidimensionale Achse hinzugefügt wird, die den Wert x1 * x2 annimmt. Eine Technik namens SVM (Support Vector Machine) behandelt solche Klassifizierungen automatisch.
python
from sklearn.model_selection import train_test_split
#Teilen Sie die Daten für Training und Bewertung (Test)
X_train, X_test,y_train, y_test= train_test_split(X, y, test_size=0.3, random_state=0)
#Extrahieren Sie das Modul mit der logistischen Regression aus sklearn
from sklearn.linear_model import LogisticRegression
# C=0.01, 0.1, 1, 10,Versuchte 100
lr = LogisticRegression(C=0.01, random_state=0)
scores = cross_val_score(lr, X, y, cv=10)
print("Richtige Antwortrate", np.mean(scores), "Standardabweichung+/-", np.std(scores))
--C wird als Argument von LogisticRegression angegeben. Dieses C ist ein Parameter für die Regularisierung. Regularisierung ist die Anpassung von Modellformeln, um ein Übertraining zu verhindern. Übertraining gilt für Trainingsdaten, da das Modell zu komplex ist, nicht jedoch für Testdaten. Die Stärke der Regularisierung nimmt mit abnehmendem Parameter C zu.
――Cross_val_score ist eine Überprüfungsmethode, die Daten aufteilt und das Lernen und Beurteilen wiederholt. Sie können die geteilten Trainingsdaten weiter aufteilen und die Leistung überprüfen, damit die Daten nicht verzerrt werden. Da cv = 10 ist, geben wir diesmal den Durchschnittswert an, nachdem wir das Muster 10 Mal analysiert haben.
Logistische Funktion
In einem Wort ... Das Analyseergebnis wird durch eine Reihe von if-Anweisungen ausgegeben. Das Folgende ist ein Zitat von der offiziellen Website. Sie können sehen, dass es eine baumartige Struktur hat. Eine maschinelle Lernmethode, die eine Baumstruktur zur Klassifizierung und Regression verwendet, ist ein entscheidender Baum.
python
#Extrahieren Sie ein Modul mit einem Entscheidungsbaum aus sklearn
from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier()
#Klassifiziert nach Entscheidungsbaum
tree.fit(X, y)
#Ergebnisberechnung mit Testdaten
tree.score(X, y)
#Zeichnen Sie die Ergebnisse
plot_tree(tree, X, y)
In einem Wort ... Es kann zur Klassifizierung und Regression verwendet werden! Mit demselben Algorithmus in Python können Sie zwei Funktionen verwenden: Klassifizierung und Regression. SVC (Support Vector Classification): Klassifizierung SVR (Support Vector Regression): Regression
In einer linearen SVM wird sie wie in der folgenden Abbildung gezeigt klassifiziert und zurückgeführt.
Feature-Dimension | Grenztyp |
---|---|
2D | Gerade Linie |
3D | Gerade Linie |
n Abmessungen | Super Flugzeug |
python
#SVM SVC(Einstufung)wählen
from sklearn.svm import SVC
#Modellierungs- und Trainingstrainingsdaten
svm = SVC(C=1.0, kernel='linear')
svm.fit(X_train, y_train)
#Ergebnisberechnung mit Testdaten
svm.score(X_test, y_test)
#Grundstück des erlernten Gebiets
plot_regions(svm, X, y);
Rufen Sie mit SVC () den Klassifizierer von der Support-Vektor-Maschine auf und speichern Sie ihn einmal in einer Variablen namens clf. Die inneren Parameter C und Kernel sind die Arten von Strafbeitrags- bzw. Unterstützungsvektormaschinen. Der Strafbeitrag C ist die Höhe des Strafbeitrags bei der Bestimmung der Grenze. Je größer C, desto größer die Strafe für falsch erkannte Punkte. "Kernel = 'linear'" bedeutet die Verwendung einer linearen Unterstützungsvektormaschine.
Harter Rand: Einfacher Einstieg in die lineare Trennung, und eine lineare Trennung ist möglich Weicher Rand: SVM klüger als harter Rand
https://kenyu-life.com/2019/02/11/support_vector_machine/
https://qiita.com/t-yotsu/items/1a6bf3a4f3242eae7857
Recommended Posts