2017-12-14 3 views
-3

Ich benutze Scikit-learn Ensembles Klassifizierer für die Klassifizierung.Ich habe separate Training und Test-Datensätze.Wenn ich die gleichen Datensätze verwenden und klassifizieren mit maschinellen Lernalgorithmen bekomme ich konsistente Genauigkeiten. Inkonsistenz tritt nur bei Ensemble-Klassifikatoren auf. Ich habe sogar random_state auf 0.Scikit lernen Abweichungen in der Genauigkeit

bag_classifier = BaggingClassifier(n_estimators=10,random_state=0) 
bag_classifier.fit(train_arrays,train_labels) 
bag_predict = bag_classifier.predict(test_arrays) 
bag_accuracy = bag_classifier.score(test_arrays,test_labels) 
bag_cm = confusion_matrix(test_labels,bag_predict) 
print("The Bagging Classifier accuracy is : " ,bag_accuracy) 
print("The Confusion Matrix is ") 
print(bag_cm) 
+1

poste deinen Code auch. –

+1

Suchen Sie nach 'random_state' in allen Methoden oder Klassen, die Sie verwenden, und legen Sie das fest. Bitte posten Sie den kompletten Code. –

+1

Bitte sehen Sie sich diese Fragen an, die für Sie doppelt sind: [Question1] (https://stackoverflow.com/questions/28673442/getting-different-result-each-time-i-run-a-linear-regression-using-scikit) und [Frage2] (https://stackoverflow.com/questions/43901083/sgdclassifier-giving-different-accuracy-each-time-for-text-classification) –

Antwort

0

Sie werden in der Regel unterschiedliche Ergebnisse für gleiches Modell gesetzt finden, denn jedes Mal, wenn das Modell während des Trainings durchgeführt wird, der Zug/Test Split zufällig ist. Sie können die gleichen Ergebnisse reproduzieren, indem Sie dem Zug/Test-Split den Startwert geben.

train, test = train_test_split(your data , test_size=0.3, random_state=57) 

den gleichen random_state Wert in jeder Umdrehung der Ausbildung halten.