编辑: 865397499 | 2019-07-15 |
0 ,
1 ] 用于 S V M的分类训练.
2 .
2 传统 S V M 算法 支持向量机( S u p p o r t V e c t o rM a c h i n e , S V M) 算 法由 V a p n i k 等[
2 2 ] 在1995年提出, 主要用于解决模 式分类问题.支持向量机利用对最优分类超平面的 寻找来应对分类问题, 即寻找决策面.选择 S V M只 要基于该算法具备如下三个优点[
2 3 ] : (
1 )经验风险 最小化且避免分类模型过拟合, (
2 )可得到全局最 优解, (
3 )应用范围广. S V M属于二分类模型, 根据结构风险最小化准 则, 构建目标函数使得类别尽可能分开.该模型的 基本原理: 假设一个包含两类样本的集合{ ( x i , y i ) i =
1 ,
2 , …, l 且xi∈R n , y i ∈{-
1 ,
1 } } 能够被某个 超平面 ω x + b = 0正确分开, 其中, R n 为 n维实数 空间, l 为样本中点的数目.那么将与两类样本点 距离最大的分类面称为最优超平面, 距离次平面最 近的两类样本点被称为支持向量( S u p p o r t V e c t o r ) . 支持向量机分为线性可分支持向量机、 线性不可分 支持向量机以及非线性可分支持向量机三种. 本文的正常与恶意的脚本分类属于非线性可分 问题.所以采用非线性可分支持向量机. S V M算法需要通过内积核函数来将低维空间 中那个非线性问题转为高维空间线性划分问题求 解.向量机支持多种核函数, 对于核函数的选取, 采 用了线性核函数: K ( x i , x j )= x i x j (
1 ) 选取线性核函数主要是基于以下两点考虑: (
1 )本文所选取的特征较之以往要多出很大部 分, 选取参数会耗时太长, 而线性核函数只有一个惩 罚因子, 选取线性核函数有助于优化参数的选取 时长. (
2 )S V M优势在于对支持向量的取用以减少 H空间, 减少过拟合的可能性, 所以在 H特征向量 维数比较大的情况下, 线性核函数更加适用.
2 .
3 改进后算法 N E S V M 在对分类器进行训练时, 传统的 S V M着眼点在 于两类样本交界部分, 有些点混杂在另外一类中, 不 仅无助于分类器性能的提高, 反而会增加训练器的 计算负担, 也由于这些点的存在, 会造成训练器过度 学习, 减弱了泛化能力. 针对以上问题, 对传统的 S V M进行改进, 提出 了另外一种泛化能力提高的算法 N E S V M( N e a r e s t n e i g h b o r E d i t i n g S V M) , 对每一个样本, 将其与最近 邻的样本进行异同的比较然后决定其取舍, 以此来 进行对训练集的剪裁.N E S V M迭代地寻找每个点 的最近邻近点, 保留与该点相同的同类, 删除不同的 异类, 从而避免了同类样本过度重叠.提高了泛化 性.其中的距离计算利用欧式距离作为两个向量之 间的距离计算, 设: x i= ( x
1 i , x
2 i , …, x n i ) , x j= ( x
1 j , x
2 j , …, x n j ) (
2 ) 则样本 x i与xj间的欧式距离为: D ( x i , x j )= ∑ n k =
1 ( x k i -x k j ) 2(3)算法描述如下:
4 8 南京邮电大学学报( 自然科学版)
2 0
1 9年 算法
1 N E S V M算法 输入: 训练集( x
1 , y
1 ) , ( x
2 , y
2 ) , …, ( x m, y m)
1 . T r a i n m n= [ X , Y ] T , X= [ x
1 , …, x m] T
2 . Y= [ y
1 , …, y m] T
3 . f o r p = 1t o m
4 . { Z
1 m........