一、数据集处理
处理数据集是一个文件夹 一个文件夹处理的,将原网络流数据集 放入一个文件夹 处理转换成 Json文件。(数据预处理)然后将这些文件处理成目标文件格式 再分割成训练集和测试集。每次运行只会处理一个文件夹。
- 运行train.py 导入训练集训练模型,训练完之后进行保存模型参数。
- 运行test.py 导入测试集测试模型,因此我们需要使用模型参数保存代码。
如果我们需要将数据集4倍交叉验证分为4个部分,3个训练集,一个测试集。那就相当于运行三次train.py分别运行导入不同的三个训练集即可。如果每个部分都需要当做一次测试集,那就重复4次就行。
二、后门攻击训练
为了进行有监督训练,我们需要带有标签的数据集。
我们认为数据集是带有标签的,
训练这里分为几个步骤:
将训练集每64个网络流当做一个批次。
(1)选择一个投毒目标yt,在当前训练集批次中随机选择20%个投毒目标,进行以下处理:
- 上一次网络流+当前网络流生成 触发器掩码m
- 当前网络流 与 掩码的m[n+1,2n]相加,训练模型分类为目标类别yt
(2)对于不投毒的训练集,用正常标签训练。