这是我的模型的配置:
"hi I am human being I live for money".split(" ")
#["hi I am human being I live", "for money"]
一旦我完成了模型训练,我决定比较如果我不随机播放数据集和标签,混淆矩阵的外观。
我改行了
"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
正如您在此处看到的那样,两个报告的精度差异很大。有什么可以解释这两个报告之间的差距?
答案 0 :(得分:0)
对于两个混淆矩阵,您的0类和1类的数量相减一。
您需要确保将数据与类标签匹配没有错误。
答案 1 :(得分:0)
数据改组从不影响性能,它通常会有所帮助,原因是它打破了数据准备过程中可能出现的偏差-例如将所有猫图像首先放置,然后再将猫图像放入猫/狗分类数据集中。
以著名的虹膜数据集为例:
from sklearn.datasets import load_iris
X, y = load_iris(return_X_y=True)
y
# result:
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
您可以清楚地看到,数据集的制备方式是前50个样本全部为标签0
,后50个标签均为1
,最后50个标签2
。尝试在这样的数据集中执行5折交叉验证而不进行混洗,您会发现大部分折痕中只包含一个标签;尝试3折CV,所有 您的折页将只包含一个标签。 Bad ...顺便说一句,这不仅是理论上的可能性,而且还有actually happened。
由于很难事先知道数据集中可能存在这种偏差,因此为了安全起见,我们总是随机播放(如前所述,它永远不会造成伤害),这就是随机播放的原因是所有机器学习管道中的标准程序。
因此,即使这里的情况显然取决于您的数据详细信息(我们不知道),这种行为也并不令人惊讶-相反,这是完全可以预期的。