利索能及
我要发布
收藏
专利号: 2023110319101
申请人: 南通大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-12-30
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.基于协同进化离散粒子群优化的糖尿病并行属性约简方法,其特征在于,包括以下步骤:S1:将糖尿病症数据存放到分布式文件系统中,并通过Spark中的textfile方法读取数据,设置文件路径和分区数量;

S2:计算机节点读取HDFS中block块的数据,并将数据转换为键值对形式,其中,key为糖尿病症的条件属性值,value为糖尿病症的决策属性值,并将转换完成的数据键值对发送到主节点汇总;

所述步骤S2的具体步骤如下:

步骤S2.1:根据电子病历数据的特征和疾病诊断的需求,选择合适的条件属性和决策属性,生成数据集S,其中S的定义如下:S={U,C∪D,V,f},其中U是待处理的原始数据集,U={x1,x2,...,xi,...,xn}代表所有患者的集合,xi代表第i个患者,n代表所有患者的个数;C代表患者电子病历的非空有限条件属性集,D代表患者电子病历的非空有限决策属性集, V是对U中元素的描述,f是U到某个目标集合的映射,f=U×(C∪D)→V;

步骤S2.2:利用SparkCore中的map方法将数据转化为键值对的RDD格式,RDD为分布式弹性数据集,是Spark中的数据类型,其中key是一个Tuple元组,元组中的元素为对象的条件属性集,如果条件属性n大于等于22个,数据类型转换为ArrayBuffer而不是Tuple,value为对象的决策属性集;

S3:主节点得到汇总的数据键值对后,对于key和value相同的键值对,保留一个,且对留下的键值对的value+1,对于key相同,value不相同的键值对,删除value值小的数据,保留value值大的数据;

所述步骤S3的具体步骤如下:

步骤S3.1:通过使用SparkCore中的reduceByKey方法对数据进行预处理,对于key值相同value值不同的数据,只保留value值较大的那一条;对于key和value都相同的数据,只保留一条并且执行value+1的操作;

步骤S3.2:通过Spark平台提供的分布式计算框架和并行处理的方法,对原始数据进行等价类划分,对于属性集 有等价类关系IND(B)定义如下:等价关系是一种不可分辨关系,对象

x对属性集B的等价类由U/IND(B)或者U/B表示;

由于Spark平台提供的分布式计算框架和并行处理的能力,将数据集S划分为若干数据子集S′,在Spark框架下通过内置的Netty通信协议建立主节点master和分区节点executor之间的通信,主节点将每个数据子集Si′传到executori节点上,每个分区并行计算,对每个对象进行属性值的划分,生成等价类划分表;

S4:主节点将进行步骤S3操作所得的键值对数据广播到各个子节点,每个子节点对数据进行粗糙集建模,计算上下近似空间、属性重要度、属性依赖度、属性相关性,子节点将计算完的局部属性重要度、局部属性依赖度、局部属性相关性发送到主节点进行汇总,主节点得到各个节点的局部信息求和,得到全局属性评价函数值;

所述步骤S4的具体步骤如下:

步骤S4.1:各个子节点并行计算各个分区属性的上下近似、属性重要度、属性依赖度、属性相关性评价指标并生成局部评价函数指标;

其中上下近似的定义为:

其中R(X)为下近似, 为上近似,Y为条件属性集的子集,X为论域, 为空集,其中上近似集代表U中可能属于X的对象集,下近似集代表属于X的对象集,下近似集又称为正域,记为POSR(X);

属性依赖度 定义为:

其中Am为属性,m为属性的索引, 为属性Am对应的正域,|·|代表基数,为正域的基数,|U|代表论域的基数;

属性相关度ρ的定义为:

其中P为条件属性集C的子集,|P|代表P的基数,γAm(D)为属性Am对决策属性集D的属性依赖度;

属性子集P的重要度σP的定义为:

其中γP(D)表示属性子集P关于D的依赖度, 表示属性子集P剔除属性Am后关于D的依赖度;

步骤S4.2:当子节点完成计算任务后,主节点通过SparkCore中的collect方法将各个executor节点的计算结果聚合到master节点;

步骤S4.3:master节点得到属性的局部评价函数后结合生成全局评价函数Γ,表示为:Γ=ωρ+λ(1‑ω)γP(D)+(1‑λ)(1‑ω)σ(D,A)           (6)其中ω,λ为两个超参数且ω,λ∈(0,1),生成的全局评价函数Γ用来作为CQBPSO算法的目标函数值;

S5:主节点对得到的属性评价函数结合CQBPSO算法进行建模,实现糖尿病症属性约简;

所述步骤S5的具体步骤如下:

步骤S5.1:初始化粒子位置、速度参数,使用二进制编码方式对数据进行离散编码,粒子的位置用长度为N的二进制比特串表示,其中N为属性的个数,属性值由’0’和’1’组成,每个位置向量都是一个属性子集;

每个粒子的速度v用一个正整数表示,且满足v∈[1,Vmax],Vmax为自定义整数,在特定的时刻,粒子的多少位特征应该被改变;

步骤S5.2:根据适应度函数(6)更新每个粒子的局部最佳位置和全局最佳位置;

步骤S5.3:根据速度更新公式(7)和位置更新公式(8)对每个粒子进行速度和位置的更新;

其中t表示迭代次数,j代表第i个粒子的第j维分量,j=1,2,3,...,n, 代表着第i个粒子第j维分量的个人最优位置, 代表着第i个粒子第j维分量的全局最优位置, 代表第i个粒子的第j维分量的粒子位置,rand1(),rand2()是随机函数且值在[0,1]之间,δ为惯性权重,c1,c2分别为个人学习因素和社会学习因子,根据协同进化理论中的非线性调整策略来更新c1和c2;

其中c1max,c1min,c2max,c2min表示c1,c2的最大值和最小值,且iter为迭代次数,itermax为最大迭代次数;

根据自适应惯性权重更新公式更新δ:

δmax,δmin为设定δ的最大值和最小值;

在粒子的某一维度上,速度向量代表着位置向量变为’1’的概率,使用下面的sigmoid函数将速度向量中该维的所有连续值转换为[0,1]范围内的概率值;

粒子位置的更新计算如下:

其中r是[0,1]内的随机数,s(·)代表着位置 的概率分布,z为自变量;

步骤S5.4:根据上述的公式(6)对粒子进行评价函数的计算,对于二进制编码的位置向量,值’0’代表该属性未被选中,值’1’代表该属性被选中。