发明名称 一种改进型基因表达式编程-模糊C均值作物数据分类方法
摘要 本发明公开了一种改进型基因表达式编程‑模糊C均值作物数据分类方法,使用自定义的相似度衡量计算公式并结合信息熵,计算作物数据属性的权值向量;使用加权的距离计算公式替代传统的欧式距离,并将基因表达式编程与模糊C均值算法相结合求出最佳的聚类中心对作物数据进行分类。本发明一方面能够更好地对作物数据间的距离进行衡量,大大提高分类结果的准确率;另一方面,能够以更少的迭代次数获得最佳的分类结果。
申请公布号 CN105912887A 申请公布日期 2016.08.31
申请号 CN201610206166.8 申请日期 2016.03.31
申请人 安徽农业大学 发明人 江朝晖;李婷婷;闵文芳;饶元;马友华
分类号 G06F19/24(2011.01)I 主分类号 G06F19/24(2011.01)I
代理机构 安徽省合肥新安专利代理有限责任公司 34101 代理人 陆丽莉;何梅生
主权项 一种改进型基因表达式编程‑模糊C均值作物数据分类方法,其特征是按如下步骤进行:步骤1:将待分类的作物数据集合记为X={x<sub>1</sub>,x<sub>2</sub>,…,x<sub>i</sub>,…,x<sub>n</sub>};x<sub>i</sub>表示第i个作物数据;且x<sub>i</sub>={x<sub>i1</sub>,x<sub>i2</sub>,…,x<sub>ik</sub>,…,x<sub>ip</sub>};x<sub>ik</sub>表示第i个作物数据的第k个属性;1≤i≤n;1≤k≤p;利用式(1)计算第i个作物数据x<sub>i</sub>与第j个作物数据x<sub>j</sub>之间的相似度s<sub>i,j</sub>:<maths num="0001"><math><![CDATA[<mrow><msub><mi>s</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><msup><mi>e</mi><mrow><mo>-</mo><mfrac><mrow><mi>d</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>x</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow><mrow><mi>p</mi><mo>&times;</mo><msub><mi>&mu;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub></mrow></mfrac></mrow></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000955889200000011.GIF" wi="1182" he="135" /></maths>式(1)中,μ<sub>i,j</sub>表示第i个作物数据x<sub>i</sub>与第j个作物数据x<sub>j</sub>之间的标准偏差;p表示作物数据属性的个数;d(x<sub>i</sub>,x<sub>j</sub>)表示第i个作物数据x<sub>i</sub>与第j个作物数据x<sub>j</sub>之间的距离,并有:<maths num="0002"><math><![CDATA[<mrow><mi>d</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>x</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>=</mo><msqrt><mrow><munderover><mo>&Sigma;</mo><mrow><mi>e</mi><mo>=</mo><mn>1</mn></mrow><mi>p</mi></munderover><msup><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>i</mi><mi>e</mi></mrow></msub><mo>,</mo><msub><mi>x</mi><mrow><mi>j</mi><mi>e</mi></mrow></msub><mo>)</mo></mrow><mi>m</mi></msup></mrow></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000955889200000012.GIF" wi="1230" he="151" /></maths>式(2)中,m=2或3;x<sub>ie</sub>表示第i个作物数据的第e个属性;x<sub>je</sub>表示第j个作物数据的第e个属性;步骤2、利用式(3)计算第i个作物数据x<sub>i</sub>与第j个作物数据x<sub>j</sub>之间的信息熵H<sub>i,j</sub>:<maths num="0003"><math><![CDATA[<mrow><msub><mi>H</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><mo>-</mo><mfrac><mn>1</mn><mrow><mi>l</mi><mi>n</mi><mn>2</mn></mrow></mfrac><mo>&lsqb;</mo><msub><mi>s</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>&times;</mo><msub><mi>lns</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>+</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><msub><mi>s</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>)</mo></mrow><mo>&times;</mo><mi>l</mi><mi>n</mi><mrow><mo>(</mo><mn>1</mn><mo>-</mo><msub><mi>s</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>)</mo></mrow><mo>&rsqb;</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000955889200000013.GIF" wi="1453" he="118" /></maths>步骤3、利用式(4)计算作物数据集合X的平均信息熵H:<maths num="0004"><math><![CDATA[<mrow><mi>H</mi><mo>=</mo><mfrac><mn>1</mn><msup><mi>n</mi><mn>2</mn></msup></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><munderover><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>H</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000955889200000014.GIF" wi="1125" he="134" /></maths>步骤4、定义变量K,并初始化K=1;令k=1;步骤5、从所述作物数据集合X中删除n个作物数据中的第k个属性;从而获得第K次更新的作物数据集合X<sup>(K)</sup>;步骤6、计算所述第K次更新的作物数据集合X<sup>(K)</sup>的平均信息熵H<sup>(K)</sup>,并求出Δ<sup>(K)</sup>=H‑H<sup>(K)</sup>;以Δ<sup>(K)</sup>作为权值向量的第K个值ω<sub>K</sub>;步骤7、判断k>p是否成立,若成立,则表示获得权值向量ω;否则,将k+1赋值给k;K+1赋值给K后,返回步骤5顺序执行;步骤8、参数设置:定义种群大小为S、最大迭代次数为θ、进化次数为l;初始化h、S和θ均为正整数;l=0;步骤9、随机生成由S个个体组成的初始种群;定义个体结构是由适应度值和基因组成;所述基因划分为基因头部和基因尾部;所述基因头部是由函数符号集F={∩,∪}中随机获得长度为h的函数符,所述基因尾部是由所述作物数据集合X中随机获得;初始适应度值设置为0;步骤10、适应度计算:步骤10.1、对第l代的S个个体中任意第s个个体的基因进行解码,获得第l代第s个个体的c个聚类中心,记为<img file="FDA0000955889200000021.GIF" wi="737" he="94" /><img file="FDA0000955889200000022.GIF" wi="98" he="71" />表示第l代第s个个体的第r个聚类中心;且<img file="FDA0000955889200000023.GIF" wi="787" he="94" /><img file="FDA0000955889200000024.GIF" wi="67" he="70" />表示第l代第s个个体的第r个聚类中心的第t个属性;1≤r≤c;1≤t≤p;利用式(5)获得第i个作物数据x<sub>i</sub>到第l代第s个个体的第r个聚类中心<img file="FDA0000955889200000025.GIF" wi="99" he="71" />之间的加权距离<img file="FDA0000955889200000026.GIF" wi="139" he="76" /><maths num="0005"><math><![CDATA[<mrow><msubsup><mi>D</mi><mrow><mi>r</mi><mi>i</mi></mrow><mrow><mo>(</mo><mi>s</mi><mo>)</mo><mo>(</mo><mi>l</mi><mo>)</mo></mrow></msubsup><mo>=</mo><msqrt><mrow><munderover><mo>&Sigma;</mo><mrow><mi>t</mi><mo>=</mo><mn>1</mn></mrow><mi>p</mi></munderover><msup><mrow><mo>(</mo><msub><mi>&omega;</mi><mi>t</mi></msub><msub><mi>x</mi><mrow><mi>i</mi><mi>t</mi></mrow></msub><mo>,</mo><msubsup><mi>v</mi><mrow><mi>r</mi><mi>t</mi></mrow><mrow><mo>(</mo><mi>s</mi><mo>)</mo><mo>(</mo><mi>l</mi><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mi>m</mi></msup></mrow></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000955889200000027.GIF" wi="1358" he="150" /></maths>步骤10.2、利用式(6)获得第i个作物数据x<sub>i</sub>对第l代第s个个体的第r个聚类中心<img file="FDA0000955889200000028.GIF" wi="99" he="70" />的隶属度<img file="FDA0000955889200000029.GIF" wi="138" he="78" />从而获得第l代第s个个体的隶属度矩阵<img file="FDA00009558892000000210.GIF" wi="571" he="111" /><maths num="0006"><math><![CDATA[<mrow><msubsup><mi>U</mi><mrow><mi>r</mi><mi>i</mi></mrow><mrow><mo>(</mo><mi>s</mi><mo>)</mo><mo>(</mo><mi>l</mi><mo>)</mo></mrow></msubsup><mo>=</mo><mn>1</mn><mo>/</mo><munderover><mo>&Sigma;</mo><mrow><mi>z</mi><mo>=</mo><mn>1</mn></mrow><mi>c</mi></munderover><msup><mrow><mo>(</mo><msubsup><mi>D</mi><mrow><mi>r</mi><mi>i</mi></mrow><mrow><mo>(</mo><mi>s</mi><mo>)</mo><mo>(</mo><mi>l</mi><mo>)</mo></mrow></msubsup><mo>/</mo><msubsup><mi>D</mi><mrow><mi>z</mi><mi>i</mi></mrow><mrow><mo>(</mo><mi>s</mi><mo>)</mo><mo>(</mo><mi>l</mi><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mfrac><mn>2</mn><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></mfrac></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA00009558892000000211.GIF" wi="1326" he="174" /></maths>步骤10.3、利用式(7)获得第l代第s个个体的适应度值<img file="FDA00009558892000000212.GIF" wi="105" he="70" /><maths num="0007"><math><![CDATA[<mrow><msubsup><mi>F</mi><mi>s</mi><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow></msubsup><mo>=</mo><mn>1</mn><mo>/</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><munderover><mo>&Sigma;</mo><mrow><mi>r</mi><mo>=</mo><mn>1</mn></mrow><mi>c</mi></munderover><msup><mrow><mo>(</mo><msubsup><mi>U</mi><mrow><mi>r</mi><mi>i</mi></mrow><mrow><mo>(</mo><mi>s</mi><mo>)</mo><mo>(</mo><mi>l</mi><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mi>m</mi></msup><msup><mrow><mo>(</mo><msubsup><mi>D</mi><mrow><mi>r</mi><mi>i</mi></mrow><mrow><mo>(</mo><mi>s</mi><mo>)</mo><mo>(</mo><mi>l</mi><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA00009558892000000213.GIF" wi="1326" he="143" /></maths>步骤10.4、重复步骤10.1‑步骤10.3,从而获得第l代S个个体的适应度值,并标记拥有第l代最高适应度值的个体为B<sup>(l)</sup>和第l代最低适应度值的个体为W<sup>(l)</sup>;步骤11、遗传操作:步骤11.1、利用轮盘赌将第l代最低适应度值的个体W<sup>(l)</sup>替换为第l代最高适应度值的个体B<sup>(l)</sup>后的S个个体进行选择操作;步骤11.2、根据单点重组概率对完成选择操作后的第l代S个个体进行单点重组操作;步骤11.3、根据变异概率对完成单点重组操作后的第l代S个个体进行变异操作,从而获得完成变异操作后的第l代S个个体;若变异过程中任一个体基因头部的第一位出现“∩”的函数符,则重新对相应个体进行变异操作;步骤12、生成新一代种群:步骤12.1、对完成变异操作后的第l代S个个体中任意第a个个体的基因进行解码,获得第l代第a个个体的c个聚类中心,记为<img file="FDA0000955889200000031.GIF" wi="802" he="95" /><img file="FDA0000955889200000032.GIF" wi="116" he="78" />表示完成变异操作后的第l代第a个个体的第r个聚类中心;步骤12.2、获得第i个作物数据x<sub>i</sub>对第l代第a个个体的第r个聚类中心<img file="FDA0000955889200000033.GIF" wi="111" he="77" />的隶属度<img file="FDA0000955889200000034.GIF" wi="150" he="70" />从而获得第l代第a个个体的隶属度矩阵<img file="FDA0000955889200000035.GIF" wi="590" he="112" />步骤12.3、根据第l代第a个个体的隶属度矩阵<img file="FDA0000955889200000036.GIF" wi="91" he="70" />对作物数据集合X划分为c类数据;步骤12.4、利用式(8)计算第l代第a个个体的c类数据中第r类数据的聚类中心<img file="FDA0000955889200000037.GIF" wi="139" he="71" /><maths num="0008"><math><![CDATA[<mrow><msubsup><mi>V</mi><mi>r</mi><mrow><mo>(</mo><mi>a</mi><mo>)</mo><mo>(</mo><mi>l</mi><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mrow><munderover><mo>&Sigma;</mo><mrow><mi>b</mi><mo>=</mo><mn>1</mn></mrow><mi>w</mi></munderover><msup><mrow><mo>(</mo><msubsup><mi>U</mi><mrow><mi>r</mi><mi>b</mi></mrow><mrow><mo>&prime;</mo><mrow><mo>(</mo><mi>a</mi><mo>)</mo></mrow><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow></mrow></msubsup><mo>)</mo></mrow><mi>m</mi></msup><msubsup><mi>x</mi><mi>b</mi><mrow><mo>(</mo><mi>a</mi><mo>)</mo><mo>(</mo><mi>l</mi><mo>)</mo><mo>(</mo><mi>r</mi><mo>)</mo></mrow></msubsup></mrow><mrow><munderover><mo>&Sigma;</mo><mrow><mi>b</mi><mo>=</mo><mn>1</mn></mrow><mi>w</mi></munderover><msup><mrow><mo>(</mo><msubsup><mi>U</mi><mrow><mi>r</mi><mi>b</mi></mrow><mrow><mo>&prime;</mo><mrow><mo>(</mo><mi>a</mi><mo>)</mo></mrow><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow></mrow></msubsup><mo>)</mo></mrow><mi>m</mi></msup></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000955889200000038.GIF" wi="1309" he="254" /></maths>式(8)中,<img file="FDA0000955889200000039.GIF" wi="142" he="70" />表示第l代第a个个体的第r类数据中第b个作物数据;且第l代第a个个体的第r类数据中共有w个作物数据;步骤12.5、重复步骤12.2‑步骤12.4,从而获得完成变异操作后的第l代第a个个体的c类数据的c个聚类中心;步骤12.6、对所述完成变异操作后的第l代第a个个体的c类数据的c个聚类中心进行编码,获得第l+1代第a个个体的基因;步骤12.7、重复步骤12.1‑步骤12.6,从而获得第l+1代S个个体的基因;步骤13、判断l+1>θ是否成立,若成立,则执行步骤14;若不成立,则将l+1赋值给l,并返回步骤10顺序执行;步骤14、对第l+1代S个个体的基因进行适应度计算,获得拥有第l+1代最高适应度值的个体为B<sup>(l+1)</sup>,并对第l+1代最高适应度值的个体B<sup>(l+1)</sup>的基因进行解码,获得第l+1代个体B<sup>(l</sup><sup>+1)</sup>的c个聚类中心;根据第l+1代个体B<sup>(l+1)</sup>的隶属度矩阵对作物数据集合X划分为c类数据;并将分类结果输出。
地址 230036 安徽省合肥市长江西路130号