2017-12-14 18 views
-3

私はscikit-learnアンサンブル分類器を分類に使用しています。私は別々のトレーニングとテストデータセットを持っています。私は同じデータセットを使用し、機械学習アルゴリズムを使用して分類すると一貫した精度が得られます。不一致は、アンサンブル分類子の場合のみです。私も0Scikitは精度の偏差を学ぶ

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

あなたのコードも記入してください。 –

+1

あなたが使用しているすべてのメソッドやクラスで 'random_state'パラメータを探し、それを設定します。また、完全なコードを投稿してください。 –

+1

あなたと重複するこれらの質問をご覧ください:[質問1](https://stackoverflow.com/questions/28673442/getting-different-result-each-time-i-run-a-linear-regression-using-scikit )と[質問2](https://stackoverflow.com/questions/43901083/sgdclassifier-giving-different-accuracy-each-time-for-text-classification) –

答えて

0

にrandom_stateを設定しているモデルは、トレーニング中に実行されるたびに、電車/テスト分割がランダムであるので、あなたは通常、同じモデルの異なる結果があります。トレイン/テスト分割にシード値を与えることで、同じ結果を再現できます。

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

各ターンのトレーニングで同じrandom_stateの値を保持してください。

関連する問題