一、数据组合采样
欠采样和过采样都是只针对某一类样本,第三种采样就是把过采样和欠采样技术结合起来同时进行,即组合重采样,其基本思想是增加样本集中少数类样本的个数,同时减少多数类样本的个数,以此来降低不平衡度,有两个典型的组合方法:SMOTE+Tomeklinks和SMOTE+ENN,下面对它们分别进行讲解
1:SMOTE + Tomek Link Removal
首先,利用SMOTE方法生成新的少数类样本,得到扩充后的数据集T。然后剔除T中的Tomek links对
为什么需要这两者的组合呢?避免SMOTE导致原本属于多数类样本的空间被少数类“入侵”(invade),由Tomek links去除噪声点或者边界点
2:SMOTE+ENN
和SMOTE+Tomek links方法的思路相似,包含两个步骤
1) 利用SMOTE方法生成新的少数类样本,得到扩充后的数据集T
2) 对T中的每一个样本使用kNN(一般k取3)方法预测,若预测结果和实际类别标签不符,则剔除该样本
二、特征层的不平衡数据分类
在网络安全中,某些类别的网络数据难以获得而导致了非平衡问题,多数类通常是正常的,而少数类是攻击行为,各个类别的样本数量分布虽然具有不平衡性,但这种非平衡性并非在所有特征上都存在
特征层解决不平衡数据分类的思路就是选择最合适的特征表示空间,再进行分类
最合适”是指提高少数类及整体的分类正确性。把数据样本投影到这个“最合适”的子空间中,多数类可能聚集在一起或重叠在一起,那么就有利于减小数据的非平衡性
根据机器学习的特征理论,在特征空间的构造方面,存在两大类方法,即特征选择和特征提取
三、算法层面的非平衡数据分类
1:代价敏感方法
代价敏感:设置损失函数的权重,使得少数类判别错误的损失大于多数类判别错误的损失
以分类错误总代价最低为优化目标,能更加关注错误代价较高类别的样本,使得分类性能更加合理
实现方法:
一是,改变原始的数据分布来得到代价敏感的模型;
二是,对分类的结果进行调整,以达到最小损失的目的;
三是,直接构造一个代价敏感的学习模型
优化目标 最优的Bayes预测就是把x分为使得R(i|x) 最小化的类别k,即: K= argmin R(i|x), i=1,2,…N 其中R(i|x)是某个类别i的样本x的分类风险
对于一个给定的训练数据集((x1,Y1,),…,(xn,yn)),标准的非代价敏感支持向量机学习出一个决策边界
普通SVM
偏置惩罚支持向量机(BP-SVM)
代价敏感教练损失支持向量机(CSHL-SVM)
2:单分类器方法
单类分类器方法:仅对少数类进行训练,例如运用SVM算法
密度估计法 基于聚类的方法 基于支持域的方法
单类支持向量机(OneclassSVM) 支持向量数据描述(Support Vector Data Description,SVDD)
当多数类中存在明显簇结构时,使用聚类方法获得聚类结构有利于提高多数类轮廓描述的精度
3:集成学习
典型的集成学习方法有Bagging、 Boosting、Stacking
Over Bagging:每次迭代时应用随机过采样在小类数据
Under Bagging:每次迭代时应用随机下采样在大类数据
SMOTEBagging:结合了SMOTE与bagging,先使用SMOTE生成更加全面的小类数据,然后应用bagging
Asymmetric bagging:每次迭代时,全部小类数据保留,从大类数据中分离一个与小类数据一样大的子集
SMOTEBoost : 结合了SMOTE方法代替简单的增加小类观察点的权重
BalanceCascade : 是典型的双重集成算法,采用Bagging作为基本的集成学习方法,并在训练每个Boostrap数据时,使用AdaBoost作为分类算法