1

Ich versuche einen aktiven Lerncomputer (ein Experiment für ein Projekt) Algorithmus zu implementieren, wo ich getrennt trainieren möchte, bitte überprüfen Sie meinen Code unten.Trainingsdaten in zwei Schritten mit gleicher Genauigkeit?

clf = BernoulliNB() 
clf.fit(X_train[0:40], y_train[0:40]) 
clf.fit(X_train[40:], y_train[40:]) 

Die oben in der Regel ähnlich Beide haben Punktzahl unterschiedliche Genauigkeit

clf = BernoulliNB() 
clf.fit(X_train, y_train) 

getan. Ich möchte dem vorhandenen Modell Trainingsdaten hinzufügen, da es rechenintensiv ist - ich möchte nicht, dass mein Modell eine weitere Zeitberechnung durchführt.

Irgendwie kann ich?

Antwort

1

Das ist Online-Training oder inkrementelle Lernen für große Daten verwendet genannt. Bitte sehen Sie diese page for strategies.

Im Wesentlichen, in scikit-lernen, müssen Sie partial_fit() mit allen Etiketten in y im Voraus bekannt.

partial_fit (X, Y, classes = None, sample_weight = None)

classes : array-like, shape = [n_classes] (default=None) 

Liste aller Klassen, die möglicherweise in der y-Vektor erscheinen kann. Muss beim ersten Aufruf von partial_fit bereitgestellt werden, kann in nachfolgenden Aufrufen entfallen.

Wenn Sie einfach tun:

clf.partial_fit(X_train[0:40], y_train[0:40]) 
clf.partial_fit(X_train[40:], y_train[40:]) 

Dann gibt es eine Möglichkeit, dass, wenn jede Klasse, die in den ersten 40 Proben nicht vorhanden ist, und kommt in der nächsten Iterationen partial_fit(), dann es wird einen Fehler werfen.

So Idealfall sollten Sie dies tun:

# First call 
clf.partial_fit(X_train[0:40], y_train[0:40], classes = np.unique(y_train)) 

# subsequent calls 
clf.partial_fit(X_train[40:80], y_train[40:80]) 
clf.partial_fit(X_train[80:], y_train[80:]) 

and so on.. 
+0

akzeptiert diese Antwort, da es eine klarere Erklärung hat. – irobo

2

Sie sollten partial_fit verwenden, um Ihr Modell in Stapeln zu trainieren.

clf = BernoulliNB() 
clf.partial_fit(X_train[0:40], y_train[0:40]) 
clf.partial_fit(X_train[40:], y_train[40:]) 

Bitte überprüfen Sie this, um mehr über die Funktion zu erfahren.

this helps :)

+0

sicher, dass ich überprüfen und aktualisieren – irobo

+0

über perfekt gearbeitet. Warte nur einige Zeit (2 Tage), bevor du diese Antwort akzeptierst. Ich danke dir sehr. – irobo

+1

Froh, es hat funktioniert :) Großartig – janu777

Verwandte Themen