阿里云安全恶意程序检测之数据探索

数据说明

训练数据共有 file_id、label、api、tid、index 5个字段

测试数据共有 file_id、api、tid、index 4个字段

在这里插入图片描述

每个 file_id 对应一个 label 用来标记程序的种类,每个 file_id 有多个 tid,每个 tid 会调用多个 api,api 按照调用的先后顺序编号多个 index

这是一个序列分类的问题,从一串超长的文本序列中提取出信息并进行分类。

特征工程

  • 文本预处理

不同于传统的中文文本分类,不需要进行分词、去停用词处理,并且数据经过处理,没有缺失值异常值等。

这里先按照 file_id 分组,设置 labels 和 files 列表,分别用来存储对应 file_id 的种类和 api 拼接序列,最后将 labels 和 files 存储为 pkl 文件

labels = []
files = []
data = pd.read_csv(path) 
group_fileid = data.groupby('file_id')
for file_name, file_group in group_fileid:
    file_labels = file_group['label'].values[0]  # 属于哪一类病毒
    result = file_group.sort_values(['tid', 'index'], ascending=True)  # 按照 tid 和 index 升序排列
    api_sequence = ' '.join(result['api'])  # 把 api 拼接起来
    labels.append(file_labels)
    files.append(api_sequence)
with open("security_train.csv.pkl", 'wb') as f:
    pickle.dump(labels, f)
    pickle.dump(files, f)
  • 特征提取

因为所给数据特征维度不高,这里所有特征都进行选取

  • 文本表示

接下来的文本表示会分别使用不同方法,探索不同表示方法对模型的效果及思考所得结果的原因。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值