Вот конфигурация моей модели:
"model": {
"loss": "categorical_crossentropy",
"optimizer": "adam",
"layers": [
{
"type": "lstm",
"neurons": 180,
"input_timesteps": 15,
"input_dim": 103,
"return_seq": true,
"activation": "relu"
},
{
"type": "dropout",
"rate": 0.1
},
{
"type": "lstm",
"neurons": 100,
"activation": "relu",
"return_seq": false
},
{
"type": "dropout",
"rate": 0.1
},
{
"type": "dense",
"neurons": 30,
"activation": "relu"
},
{
"type": "dense",
"neurons": 3,
"activation": "softmax"
}
]
}
Как только я закончил обучать модель, я решил сравнить, как выглядит путаница, если я тасую или нет набор данных и метки.
Я перетасовал строку
from sklearn.utils import shuffle
X, label = shuffle(X, label, random_state=0)
Имейте в виду, X
и label
- это два набора для тестирования.Так что это не относится к обучающим наборам.
Матрица смешения с фазой тасования
Confusion Matrix
[[16062 1676 3594]
[ 1760 4466 1482]
[ 3120 1158 13456]]
Classification Report
precision recall f1-score support
class -1 0.77 0.75 0.76 21332
class 0 0.61 0.58 0.60 7708
class 1 0.73 0.76 0.74 17734
avg / total 0.73 0.73 0.73 46774
Матрица смешения без фазы тасования
Confusion Matrix
[[12357 2936 6039]
[ 1479 4301 1927]
[ 3316 1924 12495]]
Classification Report
precision recall f1-score support
class -1 0.72 0.58 0.64 21332
class 0 0.47 0.56 0.51 7707
class 1 0.61 0.70 0.65 17735
avg / total 0.64 0.62 0.62 46774
Как вы видите, точность обоих отчетов существенно различается.Чем можно объяснить разрыв между этими двумя отчетами?