接上文 DGA Domain Detection 1 import os import random import tldextract import sklearn import pandas as pd import numpy as np from keras.models import Sequential, load_model from keras.preprocessing import sequence from keras.layers.core import Dense, Dropout, Activation from keras.layers.embeddi

Domain generation algorithms (DGA) are algorithms seen in various families of malware that are used to periodically generate a large number of domain names that can be used as rendezvous points with their command and control servers. 0x01 Domain Generating Algorithm Domain generation algorith

K-Means是发现给定数据集的k个簇的算法。簇个数k是用户给定的,每一个簇通过其质心,即簇中所有点的中心来描述 0x01 K-Means 聚类分析试图将相似对象归入同一簇,将不相似对象归到不同簇 K-Means是发现给定数据集的k个簇的算法。簇个数k是用户给定的,每一个簇通过其质心,即簇中所有点的中心来描述 优点: 容易实现 缺点: 可能收敛到局部最小值,在大规模数据集上收敛较慢 适用数据类型: 数值型数据 步骤: 随机确定k个初始点作为质心 将数据集中的每个点分配到一个簇中 可使用任意距离度量方法,性能会受度量方法不同影响 0x02 算法实现

线性回归意味着可以将输入项分别乘以一些常量,再将结果加起来得到输出 0x01 LR 回归的目的是预测数值型的目标值 线性回归意味着可以将输入项分别乘以一些常量,再将结果加起来得到输出 优点: 结果易于理解 计算不复杂 缺点: 对非线性数据拟合不好 适用数据类型 标称型 数值型 0x02 最佳拟合直线 将数据视为直线进行建模 def standRegres(xArr, yArr): ''' 计算最佳拟合直线 :param xArr: :param yArr: :return: 

将大优化问题分解为多个小优化问题来求解 0x01 SVM 实现算法:序列最小优化(SMO) 支持向量:离分割超平面最近的那些点 优点: 范化错误率低 计算开销不大 结果易解释 缺点: 对参数调节和核函数的选择敏感 原始分类器需要修改才能处理多分类问题 适用数据类型: 数值型 标称型 0x02 SMO 将大优化问题分解为多个小优化问题来求解 目标是求出一系列alpha和b,一旦求出了这些alpha,就很容易计算出权重向量w并得到分隔超平面 工作原理是:每次循环中选择两个alpha进行优化处理。一旦找到一对合适的alpha,那么就增大其中一个同时减小另一个

在每个特征上都乘以一个回归系数,然后把 所有的结果值相加,将这个总和代入Sigmoid函数中,进而得到一个范围在0~1之间的数值。任 何大于0.5的数据被分入1类,小于0.5即被归入0类 0x01 LR 根据现有数据对分类边界线建立回归公式,以此进行分类 LR的目的是寻找一个非线性函数Sigmoid的最佳拟合参数,求解过程可以由最优化 算法来完成 在最优化算法中,最常用的就是梯度上升算法,而梯度上升算法又可以简化为随机梯度上升算法 优点 计算代价不高 易于理解和实现 缺点 容易欠拟合 分类精度可能不高 适用数据类型 数值型 标称型 类阶跃函数:Sigmoid

朴素:整个形式化的过程只做最原始、最简单的假设 0x01 NB 朴素:整个形式化的过程只做最原始、最简单的假设 优点 数据较少情况下仍然有效 可以处理多类别问题 缺点 对于输入数据的处理方式比较敏感 适用数据类型 标称型 0x02 贝叶斯决策理论 计算数据点属于每个类别的概率,并进行比较,选择具有最高概率的决策 条件概率 推导过程 0x03 构建文档分类器 两个假设 特征之间相互独立(统计意义上的独立) 每个特征同等重要 word2vec def loadDataSet(): '''

分类算法 0x01 DT 分类算法 优点 计算复杂度不高 输出结果易于理解 中间值缺失不敏感 可处理不相关特征 缺点 可能会产生过度匹配问题 适用数据类型: 数值型 标称型 0x02 准备数据 算法描述 1.根节点开始,测试待分类项中相应的特征属性 2.按照其值选择输出分支,直到到达叶子节点 3.将叶子节点存放的类别作为决策结果 划分数据集 将无序的数据变得更加有序 信息增益:划分数据集之后信息发生的变化 熵:信息的期望值 熵计算公式 def calcShannonEnt(dataSet): numEntries = l

采用测量不同特征值之间的距离进行分类 0x01 KNN 采用测量不同特征值之间的距离进行分类 优点: 精度高 对异常值不敏感 无数据输入假定 缺点: 计算复杂度高 空间复杂度高 适用数据范围: 数值型 标称型 0x02 算法实现 算法描述 1.计算测试数据与各个训练数据之间的距离 2.按照距离的递增关系进行排序 3.选取距离最小的K个点 4.确定前K个点所在类别的出现频率 5.返回前K个点中出现频率最高的类别作为测试数据的预测分类 def classify0(inX, dataSet, labels, k): '''

拾人牙慧,安全数据分析