2016-07-27 6 views
0

Ich versuche zu verstehen, wie Perceptron von sklearn.linear_model fit() Funktion führt (Documentation). Frage kommt aus diesem Stück Code:sklearn Perceptron lernen

clf = Perceptron() 
clf.fit(train_data, train_answers) 

print('accuracy:', clf.score(train_data, train_answers)) 
accuracy: 0.7 

Ich dachte Ziel der Armatur ist Klassifizierungsfunktion zu schaffen, die Antwort mit 100% Genauigkeit auf Testdaten geben, aber in dem obigen Beispiel gibt es nur 70%. Ich habe einen weiteren Datensatz ausprobiert, bei dem die Genauigkeit 60% betrug.

Was kann ich bei der Montage falsch verstehen?

+0

Bitte geben Sie Einzelheiten der Fall in Bezug auf Sie mit (Input und Output, Qualität der Daten etc.) arbeiten. Sofern Sie nicht angeben, dass es praktisch unmöglich ist, eine nützliche Antwort zu erhalten. – rpd

+1

Bitte nehmen Sie sich ein Buch über maschinelles Lernen und lesen Sie über Vorhersage-Fehler, Modell-Fähigkeiten, Generalisierungs-Fehler und co ... Es scheint, Sie fehlen * alle * die Grundlagen. Sry. – sascha

+1

Erste Anmerkung, die Dokumentation sagt "lineares Modell". Im Allgemeinen erhalten Sie mit einem maschinellen Lernalgorithmus keine 100% ige Genauigkeit Ihrer Trainingsdaten. Dies gilt insbesondere für ein lineares Modell. Betrachten Sie ein Diagramm von zwei Klassen von Objekten, die über zwei Dimensionen verteilt sind. Wenn die Klassenpunkte stark überlappen, müsste ein Klassifizierer eine sehr hohe Varianz aufweisen, um eine (nicht-lineare) Grenze zu erzeugen, die 100% der Trainingsdaten trennt. Normalerweise bedeutet dies eine enorme Überanpassung und ist unerwünscht. –

Antwort

0

Es hängt von Ihrer Trainingsdatenverteilung ab. Könnte man in der unten gezeigten Grafik eine gerade Linie finden, um Blau und Rot zu trennen? Offensichtlich nicht, und das ist der Punkt. Ihre Daten müssen für Perceptron Learning Algorithm linear trennbar sein, um eine 100% ige Genauigkeit der Trainingsdaten zu erreichen. Ansonsten kann keine gerade Linie es perfekt trennen.

enter image description here