论文部分内容阅读
无监督聚类算法常用来分析未加类别标识的入侵检测样本数据,然后根据数据特性判断被检测数据是正常行为还是异常行为。然而,随着新的攻击类型的不断涌现以及信息量的爆炸式增长,传统的聚类算法已经不能适应入侵检测系统的需要,亟需进一步丰富和完善聚类的理论和方法。模糊C均值算法(Fuzzy C-means,FCM)是对带约束的非线性规划问题的优化求解过程。该算法实现简单,收敛速度快,易于扩展,被广泛应用于入侵检测领域。但是FCM算法还存在很多不足,具体表现在如下几个方面:(1)FCM算法在低维空间能够获得良好的聚类效果,但是受“维度效应”影响无法有效对高维数据聚类。实际上,在数据的众多特征中,有大量不相关或者冗余的特征,对聚类不能或只能提供少量信息,因此选出最优特征子集是聚类分析的必要前提。(2)FCM算法需要预先确定算法的参数,例如聚类数目和模糊指标,这些参数与数据集的特点密切相关,直接影响最终的聚类结果。如果借助于实验或者专家经验进行人工设置,必将使得聚类结果带有一定的片面性和主观性,有可能降低算法的性能。(3)FCM算法假设所有特征对聚类的贡献是均衡的,而实际应用中并非如此。并且,如果特征贡献度指定不合理,会导致聚类结果的偏差非常大。(4)FCM算法适用于连续数据的聚类分析,而入侵检测数据集中既有连续型特征也有离散型特征,如果不加改进直接应用会降低聚类的准确率。以上不足使得FCM算法在入侵检测中的应用具有很大的局限性,因此本文以FCM算法作为研究对象,针对上述问题展开研究,主要研究内容如下:(1)研究特征选择技术,解决高维数据空间的聚类问题最优特征子集可以减少聚类算法的计算开销,有效改善聚类结果的可理解性和准确性,因此提出了一种基于邻域粗糙集和遗传算法的特征选择算法。邻域粗糙集模型将离散空间的等价关系扩展到连续空间,但是邻域参数一般都是人工设置的,所以首先提出了决策属性集的类平均距离概念,根据数据集本身特性自动计算出邻域大小。其次,邻域粗糙集模型的属性重要度仅考虑了单个属性对决策的影响程度,忽略了属性与其它属性的依赖关系对决策产生的影响,所以对其进行改进。然后,利用改进的属性重要度构造遗传算法的适应度函数,使得决策属性集的平均属性重要度较大,而属性个数尽可能少,同时利用特征被选中的频率计算交叉率,利用改进的属性重要度计算变异率,最终利用遗传算法完成最优特征子集的搜索。为了验证算法的可行性,在KDD CUP 99数据集上进行了实验,结果表明,本文提出的特征选择算法选取的特征子集能确保FCM算法获得较高的聚类准确率。(2)研究聚类数目的自适应获取方法,解决参数难以预先确定的问题聚类有效性问题可以自动确定出最佳聚类数目,其核心环节是搜索上界和聚类有效性指标的选择。因此,根据聚类中心局部密度较高且相距较远的特点,首先提出一种基于局部密度的初始聚类中心选择算法,能够选择出较优的初始聚类中心,在一定程度上克服FCM算法对初始聚类中心敏感的缺陷,同时以获得的初始聚类中心个数作为聚类数目的搜索上界,避免了使用经验规则设置带来的问题。其次,结合簇内紧密和簇间分离的特性,提出一个新的模糊聚类有效性指标,通过引入的惩罚函数抑制了当nc?时指标值下降的趋势且使其永不为0。在此基础上,提出了自适应最佳聚类数目的FCM算法。实验结果表明,该算法不仅能够自动确定较优的聚类数目,而且能够有效地提高FCM算法的收敛速度,减少迭代运行FCM算法的次数。(3)研究模糊指标的自适应优选方法,解决参数需要人工指定的问题模糊指标是模糊聚类算法的重要参数,与算法的性能密切相关。首先提出了改进的模糊相关度用来衡量簇间的相关程度,在此基础上定义了新的聚类有效性函数用来评价模糊划分的质量,然后提出了一种自适应m值的FCM算法,利用改进的粒子群算法的全局搜索能力实现聚类中心和模糊指标的自适应寻优。改进的粒子群算法基于动态惯性权重和学习因子更新速度和位置,并引入了遗传算法的变异操作保持粒子的多样性,防止算法过早收敛。实验结果表明,自适应m值的FCM算法能够自动计算出m的最优值,同时获得较好的聚类结果。(4)研究混合特征数据集的自适应特征加权方法,解决特征贡献不平衡的问题粗糙集和模糊集在处理不确定问题上具有互补性,因此将粗糙集模型与FCM算法相融合。粗糙集的阈值?如何取值是算法的关键因素,通常是人工设置,因此引入阴影集理论,利用最小化目标函数自动获取最优?值来指导聚类。基于粗糙集和阴影集理论,首先提出模糊分布质心概念表示离散特征的聚类中心,扩展FCM算法使其能够同时处理具有连续型和离散型特征的数据,然后根据特征对不同簇贡献程度不同,并结合簇的紧致性和分离性原则定义了新的加权目标函数。在特征加权的FCM算法中,特征权重的学习是关键步骤。因此,将特征权重作为变量在聚类过程中进行优化,提出了一种自适应混合特征加权的FCM算法。实验结果表明,该算法能够有效地应用于异构的混合型数据集。