Я работал над следующей задачей классификации с использованием классификатора Random Forests.
No. of classes = 11
Y = 50
X = 100
Я использовал 75% -й поезд и 25% -ный тест.
Однако, когда я вычислял матрицу путаницы,диагональное значение (27) больше 25.
from sklearn.metrics import confusion_matrix
conf_matrix = confusion_matrix(test_Y, y_prediction)
print (conf_matrix)
[[17 2 0 0 0 0 0 0 0 0 0]
[ 1 12 2 0 0 0 0 0 0 6 0]
[ 0 0 22 0 0 0 0 0 2 0 0]
[ 0 0 0 16 0 12 1 0 0 0 1]
[ 0 1 0 0 19 0 0 0 6 0 0]
[ 0 0 0 7 0 18 2 0 0 0 0]
[ 0 0 0 0 0 0 20 1 0 0 0]
[ 2 2 2 0 0 0 0 27 0 3 0]
[ 0 0 0 0 8 1 0 0 13 0 0]
[ 0 1 0 0 0 1 0 0 0 16 4]
[ 0 0 0 0 0 0 0 1 0 12 14]]
Когда я исследовал причину, разделение теста поезда не работает, как ожидалось.
yy, counts = np.unique(Y, return_counts=True)
print (yy, counts)
[ 0 1 2 3 4 5 6 7 8 9 10] [100 100 100 100 100 100 100 100 100 100 100]
train_X, test_X, train_Y, test_Y = train_test_split(X, Y, test_size=0.25, random_state=42)
Но,
yy, counts = np.unique(test_Y, return_counts=True)
print (yy, counts)
[ 0 1 2 3 4 5 6 7 8 9 10] [19 21 24 30 26 27 21 36 22 22 27]