[PYTHON] Ich habe eine Kreuzvalidierung basierend auf dem Rastersuchergebnis mit scikit-learn versucht

Einführung

Die Rastersuche und der Kreuztest wurden an verschiedenen Stellen eingeführt. Da es jedoch keinen Ort gab, an dem die Methode des Kreuztests basierend auf dem Ergebnis der Rastersuche eingeführt werden konnte, werde ich sie hier vorstellen.

Umgebung

Inhalt

Ich werde die Methode des Kreuztests basierend auf dem Ergebnis der Rastersuche vorstellen.

Implementierung

Datensatz abrufen

Holen Sie sich zunächst die Daten für maschinelles Lernen. Da scikit-learn mit einem voreingestellten Datensatz geliefert wird, ist es ein großartiger Ort, um vorerst mit dem maschinellen Lernen zu beginnen. Die Details des Datensatzes sind in [dieser Site] zusammengefasst (der Datensatz, der mit http://pythondatascience.plavox.info/scikit-learn/scikit-learn/ geliefert wird).

Datensatz


#Datensatz abrufen
iris = datasets.load_iris()

Rastersuche

Führen Sie dann eine Rastersuche durch. Stellen Sie die Parameter für die Rastersuche ein und führen Sie sie aus. Eine der Attraktionen von Scikit-Learn ist, dass Sie das Raster einfach durchsuchen können. Es ist cool, einen Parameter als Hyperparameter call zu bezeichnen

Rastersuche


#Legen Sie die Parameter für die Rastersuche fest
parameters = {
    'C':[1, 3, 5],
    'loss':('hinge', 'squared_hinge')
}

#Führen Sie eine Rastersuche durch
clf = grid_search.GridSearchCV(svm.LinearSVC(), parameters)
clf.fit(iris.data, iris.target)

#Raster-Suchergebnisse(Optimale Parameter)Erhalten
GS_loss, GS_C = clf.best_params_.values()
print "Optimale Parameter:{}".format(clf.best_params_)

Die optimalen Parameter werden 'GS_loss' bzw. 'GS_C' zugewiesen. Bevor Sie die optimalen Parameter erhalten, sollten Sie diese einmal anzeigen und die Reihenfolge der Parameter überprüfen. Die Reihenfolge der Parameter scheint nicht die Reihenfolge der Parameter auf der [offiziellen Website (sklearn.svm.LinearSVC)] zu sein (http://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html) ...

Kreuzvalidierung

Der Kreuztest wird basierend auf dem Ergebnis der Rastersuche am Ende durchgeführt.

Kreuztest


#Kreuztest(Kreuzvalidierung)Lauf
clf = svm.LinearSVC(loss=GS_loss, C=GS_C)
score = cross_validation.cross_val_score(clf, iris.data, iris.target, cv=5)

#Zeigen Sie das Ergebnis des Kreuztests an
print "Richtige Antwortrate(durchschnittlich):{}".format(score.mean())
print "Richtige Antwortrate(Minimum):{}".format(score.min())
print "Richtige Antwortrate(maximal):{}".format(score.max())
print "Richtige Antwortrate(Standardabweichung):{}".format(score.std())
print "Richtige Antwortrate(alles):{}".format(score)

Ganzer Code

Das ganze


# -*- coding: utf-8 -*-
from sklearn import datasets
from sklearn import svm
from sklearn import grid_search
from sklearn import cross_validation

# main
if __name__ == "__main__":
    #Datensatz abrufen
    iris = datasets.load_iris()

    #Legen Sie die Parameter für die Rastersuche fest
    parameters = {
        'C':[1, 3, 5],
        'loss':('hinge', 'squared_hinge')
    }

    #Führen Sie eine Rastersuche durch
    clf = grid_search.GridSearchCV(svm.LinearSVC(), parameters)
    clf.fit(iris.data, iris.target)

    #Raster-Suchergebnisse(Optimale Parameter)Erhalten
    GS_loss, GS_C = clf.best_params_.values()
    print "Optimale Parameter:{}".format(clf.best_params_)

    #Kreuztest(Kreuzvalidierung)Lauf
    clf = svm.LinearSVC(loss=GS_loss, C=GS_C)
    score = cross_validation.cross_val_score(clf, iris.data, iris.target, cv=5)

    #Zeigen Sie das Ergebnis des Kreuztests an
    print "Richtige Antwortrate(durchschnittlich):{}".format(score.mean())
    print "Richtige Antwortrate(Minimum):{}".format(score.min())
    print "Richtige Antwortrate(maximal):{}".format(score.max())
    print "Richtige Antwortrate(Standardabweichung):{}".format(score.std())
    print "Richtige Antwortrate(alles):{}".format(score)

Ausführungsergebnis

Ausführungsergebnis


Optimale Parameter:{'loss': 'squared_hinge', 'C': 1}
Richtige Antwortrate(durchschnittlich):0.966666666667
Richtige Antwortrate(Minimum):0.9
Richtige Antwortrate(maximal):1.0
Richtige Antwortrate(Standardabweichung):0.0421637021356
Richtige Antwortrate(alles):[ 1.          1.          0.93333333  0.9         1.        ]

Zusammenfassung

Es war ein bisschen enttäuschend, dass die Ergebnisse der Rastersuche mit den Standardeinstellungen von LinearSVC () übereinstimmten, aber vorerst konnte ich anhand der Rastersuchergebnisse einen Kreuztest durchführen. Ich war allergisch gegen Englisch, daher fiel es mir schwer, beim Betrachten der offiziellen Website zu lernen.

Referenz

[Datensatz, der mit scikit-learn geliefert wird](http://pythondatascience.plavox.info/scikit-learn/Dataset, der mit scikit-learn geliefert wird /)

Offizielle Website (sklearn.svm.LinearSVC)

Einführung der Python-Bibliothek für maschinelles Lernen scicit-learn

Recommended Posts

Ich habe eine Kreuzvalidierung basierend auf dem Rastersuchergebnis mit scikit-learn versucht
Ich habe versucht, mit tkinter mit dem Taschenrechner zu spielen
Rastersuche von Hyperparametern mit Scikit-learn
Ich habe am Wochenende versucht, mit Bitcoin Systre zu beginnen
[Scikit-learn] Ich habe mit der ROC-Kurve gespielt
Ich habe versucht, mit Pillow mit dem Bild zu spielen
[Python] Ich habe versucht, die Nacht der Galaxienbahn mit WordCloud zu visualisieren!
Ich habe es mit den Top 100 PyPI-Paketen versucht.> Ich habe versucht, die auf Python installierten Pakete grafisch darzustellen
Ich habe versucht, Runenfiguren mit Scikit-Learn handschriftlich zu erkennen
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
Ich habe versucht, die Daten mit Zwietracht zu speichern
Ich habe versucht, das Bild mit Python + OpenCV zu "binarisieren"
Speichern Sie Suchergebnisse auf Twitter in CSV.
Ich habe versucht, Objekte mit YOLO v3 (TensorFlow 2.1) auf der GPU von Windows zu erkennen!
Ich habe versucht, die Sündenfunktion mit Chainer zu trainieren
Ich habe versucht, Mine Sweeper auf dem Terminal mit Python zu implementieren
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, Soma Cube mit Python zu lösen
Ich habe versucht zu verstehen, wie Pandas und multiple Co-Linearität unter Verwendung des Affairs-Datensatzes als Thema verwendet werden.
Ich habe Python zum ersten Mal mit Heroku ausprobiert
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Ich habe versucht, den Linux-Kernel auf virtualbox + vagrant zu installieren
Ich habe versucht, die API mit dem Python-Client von echonest zu erreichen
Ich twittere nicht, aber ich möchte tweepy verwenden: Zeigen Sie einfach die Suchergebnisse auf der Konsole an
[Shell-Start] Ich habe versucht, die Shell mit einem billigen Linux-Board-G-Cluster auf dem Fernseher anzuzeigen
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich habe versucht zu simulieren, wie sich die Infektion mit Python ausbreitet
Ich habe versucht, die Emotionen des gesamten Romans "Wetterkind" zu analysieren
Erstellen Sie eine neue CSV mit Pandas basierend auf der lokalen CSV
Ich habe versucht, die Python-Bibliothek von Ruby mit PyCall zu verwenden
Ich habe versucht, mit TensorFlow den Durchschnitt mehrerer Spalten zu ermitteln
Visualisieren Sie die Ergebnisse von Entscheidungsbäumen, die mit Python scikit-learn erstellt wurden
Ich habe versucht, die Zugverspätungsinformationen mit LINE Notify zu benachrichtigen
Ich habe vorerst versucht, PIFuHD unter Windows auszuführen
Ich habe versucht, die Windows 10-Festplatte durch eine kleinere SSD zu ersetzen
Datenanalyse basierend auf den Wahlergebnissen der Gouverneurswahl von Tokio (2020)
Ich habe versucht, den DRF-API-Anforderungsverlauf mit django-request zu speichern
Ich habe versucht, das Python-Skript unter Windows 10 von 2.7.11 auf 3.6.0 zu ändern
Ich habe versucht, den Ipython-Cluster unter AWS auf das Minimum zu starten
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Ich habe versucht, mit Elasticsearch Ranking zu lernen!
Ich habe versucht, mit PyCaret zu clustern
Ich habe die Changefinder-Bibliothek ausprobiert!
Ich kann nicht mit # google-map suchen. ..
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
Ich habe MLflow auf Databricks ausprobiert
Als ich versuchte, Sätze basierend auf Kafkas "Transformation" mit LSTM zu generieren, konnte ich niemand werden.
Ich habe versucht, "Asciichart Py" zu verwenden, mit dem mit Python ein schönes Diagramm auf der Konsole gezeichnet werden kann.
Ich habe versucht, PDF-Daten der medizinischen Online-Versorgung zu verwenden, die auf der Ausbreitung einer neuen Coronavirus-Infektion basieren
Lebensspiel mit Python [ich habe es geschafft] (auf Terminal & Tkinter)
Ich habe versucht, das Ranking des Qiita-Adventskalenders mit Python zu kratzen
[AWS / Tello] Ich habe versucht, die Drohne mit meiner Stimme Part2 zu bedienen
Ich habe versucht, den Datenverkehr mit WebSocket in Echtzeit zu beschreiben
Ich habe versucht, die Anfängerausgabe des Ameisenbuchs mit Python zu lösen
Ich habe versucht, die Bewässerung des Pflanzgefäßes mit Raspberry Pi zu automatisieren