朴素贝叶斯算法
DGA样本格式如图,DGA数据的读取方式如下,读取文本文件,以制表符作为分隔符,读取第1列,由于前18行是注释内容,使用skiprows参数直接跳过前18行:
为了便于在普通电脑上运行相关程序,Alexa和DGA的样本都取前10000个。
把域名当做一个字符串,使用N-Gram建模,以2-Gram为例,把baidu.com进行建模,接下来向量化,输出词汇表。
使用CountVectorizer进行转换即可,其中ngram_range设置为(2,2),表明使用2-Gram,token_pattern设置为‘\w’,表明是按照字符切分:
支持向量机算法:使用支持向量机算法,特征提取使用词袋模型,完整的处理流程如图 6-7所示。
1.将Enron-Spam数据集的文件提取词袋;
2.随机划分为训练集和测试集;
3.使用支持向量机算法在训练集上训练,获得模型数据;
4.使用模型数据在测试集上进行预测;
5.验证支持向量机算法预测效果。
实例化支持向量机算法,在训练集上训练并在测试集上预测: