1 引言
近几年来,贝叶斯网络已成为数据挖掘和知识发现中的一个主要工具,在分类、聚类、预测和规则推导等方面取得了良好的应用效果。从历史数据中学习贝叶斯网络可采用基于依赖分析的方法。
常用的有:用Polytree表示概率网的方法、从完全图删除边的方法等。这种方法需要进行指数级的CI测试以发现依赖关系,当结点集较大时,其计算效率低,所以大多数此类算法都假设结点有序;但这种假设可能会影响最后学习到的网络结构的正确性。对于稀疏网络和具有较大样本数据集的系统,这种方法非常有效。
针对基于依赖分析方法的这一缺点,在网络结构学习之前应用主元分析方法将数据降维,减少网络结点数目,可提高算法效率、简化网络结构。
2 数据处理及离散化
现实数据库中的数据常存在数据不一致、数据丢失等现象,所以在运用数据学习网络结构前要对数据进行预处理。此外,对于连续性数据(如温度、湿度、长度等),直接建立贝叶斯网络模型计算复杂度大,从连续数据中很难正确学习到变量间的关系。因此首先将数据标准化,再将标准化后的连续变量离散化,用离散化后的数据进行贝叶斯网络结构的学习。这里采用模糊离散化方法,对数据集的每个属性分别进行离散化,每个属性都有3个标度:5标度、7标度、9标度可以选择。算法步骤如下:
(1)随机初始化隶属度矩阵:
3 基于PCA的贝叶斯网络结构学习算法
主元分析PCA(Principal Component Analysis)是通过可逆线性变换,将数据集转换为由维数较少的特征成分表示的、包含原数据集所有信息或大部分信息的技术。通过PCA技术,可以将复杂数据简化,因此它现已被广泛应用于数据挖掘、模式识别、信号评估、信号探测、图像编码等领域。主元分析的原理如下: