# 协作学习与网络安全比赛数据集

## 训练数据：

* 初赛与复赛所用到的训练数据均为若干个.csv文件，一个.csv文件代表一个client的数据。所有的.csv文件打包为train.zip文件。
* 每个.csv文件包含85列，前7列舍弃不用。最后一列为标签列Label。每个特征的含义描述可以参考[官方网站](https://1quadrant.com/competitions/competition/detail/5/)。下面代码可以用来进行读取训练数:
  
```python
import pandas as pd
import numpy as np
# 攻击类别标号，与测试标签相匹配。
ATTACK_TYPES = {'snmp': 0, 'syn': 2, 'dns': 3, 'ssdp': 4, 'mssql': 6, 'tftp': 7, 'ntp': 8, 'udplag': 9, 'ldap': 10, 'netbios': 11, 'udp': 12, 'benign': 13,}

# Load train
X_train_dict = {}
y_train_dict = {}
for i, f in enumerate(os.listdir("./train/")):
    dftmp = pd.read_csv("./train/" + f, skipinitialspace=True, low_memory=False)
    dftmp['SimillarHTTP'] = 0.
    X_train_dict[i] = dftmp.iloc[:, -80:-1].to_numpy()
    y_train_dict[i] = np.array([ATTACK_TYPES[t.split('_')[-1].replace('-', '').lower()] for t in dftmp.iloc[:, -1]])
```
* 数据人为增加了特征与标签噪音，具体细节可见[说明](https://1quadrant.com/competitions/competition/latest-news/detail/9/)。
  
