发明名称 一种基于支持向量机的专家系统知识获取方法
摘要 本发明提出了一种基于支持向量机的专家系统知识获取方法,基于支持向量机的规则提取过程包括:数据预处理、支持向量聚类、超矩形规则提取和规则简化、以及基于规则的样本识别过程;所述方法经过特征提取与规则简化之后,提取的规则更加简洁,易于解释;在计算聚类分配矩阵时,仅对支持向量进行聚类标识,大大降低了计算量;规则提取方法先进,诊断识别率更高;支持向量机是数据挖掘中的一种新兴的分类技术,具有坚实的理论基础和优良的泛化性能;本发明能有效地获取专家系统知识规则,突破专家系统知识动态获取的瓶颈。
申请公布号 CN103034691A 申请公布日期 2013.04.10
申请号 CN201210505242.7 申请日期 2012.11.30
申请人 南京航空航天大学 发明人 李爱;陈果;王洪伟;郝腾飞;于明月;程小勇
分类号 G06F17/30(2006.01)I;G06K9/62(2006.01)I;G06N3/12(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 朱小兵
主权项 1.一种基于支持向量机的专家系统知识获取方法,其特征在于,所述方法包括:数据预处理、支持向量聚类、超矩形规则提取和规则简化、以及基于规则的样本识别过程;具体描述如下:步骤A,对不平衡样本进行数据预处理;判断各类样本的数目是否平衡,若不平衡,则采用SMOTE过抽样算法对少数类样本进行重采样,以使得各类样本数目平衡;其过程如下:步骤A-1,对少数类中的每一个样本x,计算x到少数类样本集中每个样本的欧几里德距离,获得其k个最近邻,k为自然数;步骤A-2,样本数据集中多数类与少数类样本数目的比值为不平衡比率U,根据U设置采样倍率;对每一个少数类样本x,从其k个最近邻中随机选择合适的一个样本为<img file="FDA00002508576900011.GIF" wi="50" he="38" />在x与<img file="FDA00002508576900012.GIF" wi="24" he="36" />之间进行随机线性插值;步骤A-3,构造新的少数类样本x<sub>new</sub>:<maths num="0001"><![CDATA[<math><mrow><msub><mi>x</mi><mi>new</mi></msub><mo>=</mo><mi>x</mi><mo>+</mo><mi>rand</mi><mrow><mo>(</mo><mn>0,1</mn><mo>)</mo></mrow><mo>&times;</mo><mrow><mo>(</mo><mover><mi>x</mi><mo>~</mo></mover><mo>-</mo><mi>x</mi><mo>)</mo></mrow></mrow></math>]]></maths>其中,rand(0,1)表示0到1之间的一个随机数;步骤A-4,把人工合成的新样本与原始训练样本集并为一个新的训练集;步骤B,利用遗传算法对特征维数大的样本,进行特征选取,其步骤为:步骤B-1,二进制编码,二进制码中的每一位对应一个特征,对于二进制码中每一位的值,“0”表示特征未被选中;“1”表示特征被选中;步骤B-2,生成初始群体,随机产生S个初始串构成初始种群,S表示种群数,S定义为自然数;步骤B-3,计算个体适应度值,选取基于最近邻分类法的适应度函数,利用其分类识别率作为特征评价函数,其步骤为:步骤B-3-1,将样本随机分为训练样本和测试样本集;步骤B-3-2,对每一个特征组合初始串,去掉训练样本和测试样本中未被选中的特征,从而得到新的训练样本和测试样本集,运用最近邻法对测试样本进行识别,得到识别率R;步骤B-3-3,考虑所选择的特征数目M,则构造适应度函数为:<maths num="0002"><![CDATA[<math><mrow><mi>J</mi><mo>=</mo><msup><mi>R</mi><mrow><mo>(</mo><mn>1</mn><mo>+</mo><msup><mi>M</mi><mi>n</mi></msup><mo>)</mo></mrow></msup></mrow></math>]]></maths>由于0≤R≤1,因此,特征数M越小、识别率越大,则适应度函数J值越大,n为平衡特征数目和识别率权重的参数,0≤n≤1;步骤B-4,在S个初始串中选择适应度最大的个体,即种群中最好的个体无条件地复制到下一代新种群中,然后对父代种群进行选择、交叉和变异遗传算子运算,从而繁殖出下一代新种群其它S-1个基因串;交叉和变异是产生新个体的遗传算子,交叉率取值范围为[0,1],变异率取值范围为[0,1];步骤B-5,如果达到设定的繁衍代数,返回最好的基因串,所述基因串中,1表示特征被选中,0表示特征未被选中,从而得到特征组合,算法结束;否则,回到步骤B-4继续下一代的繁衍;步骤C,利用支持向量机聚类算法得到特征选取后样本的聚类分配矩阵,根据所述聚类分配矩阵构建超矩形规则;步骤C-1,支持向量聚类SVC,其步骤如下步骤C-1-1,特征空间中的一个样本点到其最小包含超球球心的距离为D(x<sub>i</sub>):<maths num="0003"><![CDATA[<math><mrow><mi>D</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><msqrt><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><msub><mi>&beta;</mi><mi>i</mi></msub><msub><mi>&beta;</mi><mi>j</mi></msub><mi>K</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><mi>K</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>-</mo><mn>2</mn><msubsup><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><mi>K</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>j</mi></msub><mo>,</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><msub><mi>&beta;</mi><mi>j</mi></msub></msqrt></mrow></math>]]></maths>其中,β<sub>i</sub>≥0、β<sub>j</sub>≥0,i∈[1,N],j∈[1,N];<img file="FDA00002508576900022.GIF" wi="355" he="68" />为N个样本点的数据集合,<img file="FDA00002508576900023.GIF" wi="175" he="48" />R<sup>d</sup>为数据空间;K(x<sub>i</sub>,x<sub>j</sub>)=exp(||x<sub>i</sub>-x<sub>j</sub>||<sup>2</sup>/q<sup>2</sup>)为高斯径向基核函数,q为高斯核参数;特征空间中样本最小包含超球半径可以写为<img file="FDA00002508576900024.GIF" wi="497" he="59" />β<sub>i</sub>,β<sub>j</sub>为任一支持向量,C是惩罚系数;输入样本空间中包含数据样本点的聚类定义成集合:Ω={x|D(x)=R};步骤C-1-2,特征空间类簇的标识,聚类标识特征空间中的样本点;构造一个邻接矩阵A:<img file="FDA00002508576900025.GIF" wi="1120" he="146" />如果在连接线上取10~20个采样点,只要他们都满足A<sub>ij</sub>=1,即可认为D(y)≤R成立,找出邻接矩阵A表示的图中的连通部分,一个连通部分就表示一个聚类,对于那些只有一个元素的连通部分,标记为噪声;步骤C-1-3,采用10折交叉验证的方法得到惩罚因子C和参数q;步骤C-2,超矩形规则提取,每一类簇决定一个超矩形<img file="FDA00002508576900031.GIF" wi="122" he="48" />由类簇中各个属性的区间<maths num="0004"><![CDATA[<math><mrow><msub><mi>x</mi><mn>1</mn></msub><mo>&Element;</mo><mo>[</mo><msubsup><mi>x</mi><mn>1</mn><mi>L</mi></msubsup><mo>,</mo><msubsup><mi>x</mi><mn>1</mn><mi>U</mi></msubsup><mo>]</mo><mo>&cap;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&cap;</mo><msub><mi>x</mi><mi>i</mi></msub><mo>&Element;</mo><mo>[</mo><msubsup><mi>x</mi><mi>i</mi><mi>L</mi></msubsup><mo>,</mo><msubsup><mi>x</mi><mi>i</mi><mi>U</mi></msubsup><mo>]</mo><mo>&cap;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&cap;</mo><msub><mi>x</mi><mi>N</mi></msub><mo>&Element;</mo><mo>[</mo><msubsup><mi>x</mi><mi>N</mi><mi>L</mi></msubsup><mo>,</mo><msubsup><mi>x</mi><mi>N</mi><mi>U</mi></msubsup><mo>]</mo></mrow></math>]]></maths>定义,x<sub>i</sub>上标L表示下,x<sub>i</sub>上标U表示上,即<img file="FDA00002508576900033.GIF" wi="160" he="53" />分别代表类簇中第i个属性的取值区间的最小值和最大值,L<sub>j</sub>代表类标号;将<img file="FDA00002508576900034.GIF" wi="95" he="46" />投影到坐标轴上,得到如下的if-then规则<img file="FDA00002508576900035.GIF" wi="109" he="46" />if<maths num="0005"><![CDATA[<math><mrow><msub><mi>x</mi><mn>1</mn></msub><mo>&Element;</mo><mo>[</mo><msubsup><mi>x</mi><mn>1</mn><mi>L</mi></msubsup><mo>,</mo><msubsup><mi>x</mi><mn>1</mn><mi>U</mi></msubsup><mo>]</mo><mo>&cap;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&cap;</mo><msub><mi>x</mi><mi>i</mi></msub><mo>&Element;</mo><mo>[</mo><msubsup><mi>x</mi><mi>i</mi><mi>L</mi></msubsup><mo>,</mo><msubsup><mi>x</mi><mi>i</mi><mi>U</mi></msubsup><mo>]</mo><mo>&cap;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&cap;</mo><msub><mi>x</mi><mi>N</mi></msub><mo>&Element;</mo><mo>[</mo><msubsup><mi>x</mi><mi>N</mi><mi>L</mi></msubsup><mo>,</mo><msubsup><mi>x</mi><mi>N</mi><mi>U</mi></msubsup><mo>]</mo></mrow></math>]]></maths>then class L<sub>j</sub>评价规则有效性的两个指标为:支持度和置信度;对于超矩形<img file="FDA00002508576900037.GIF" wi="95" he="46" />规则<img file="FDA00002508576900038.GIF" wi="109" he="48" />支持度<img file="FDA00002508576900039.GIF" wi="237" he="80" />和置信度<img file="FDA000025085769000310.GIF" wi="238" he="81" />取值方法如下:<maths num="0006"><![CDATA[<math><mrow><mi>conf</mi><mo>.</mo><mrow><mo>(</mo><msup><mi>R</mi><mrow><mi>j</mi><mo>,</mo><msub><mi>L</mi><mi>j</mi></msub></mrow></msup><mo>)</mo></mrow><mo>=</mo><mfrac><msub><mi>N</mi><mrow><msup><mi>H</mi><mrow><mi>j</mi><mo>,</mo><msub><mi>L</mi><mi>j</mi></msub></mrow></msup><msub><mi>L</mi><mi>j</mi></msub></mrow></msub><msub><mi>N</mi><msup><mi>H</mi><mrow><mi>j</mi><mo>,</mo><msub><mi>L</mi><mi>j</mi></msub></mrow></msup></msub></mfrac></mrow></math>]]></maths><maths num="0007"><![CDATA[<math><mrow><mi>supp</mi><mo>.</mo><mrow><mo>(</mo><msup><mi>R</mi><mrow><mi>j</mi><mo>,</mo><msub><mi>L</mi><mi>j</mi></msub></mrow></msup><mo>)</mo></mrow><mo>=</mo><mfrac><msub><mi>N</mi><mrow><msup><mi>H</mi><mrow><mi>j</mi><mo>,</mo><msub><mi>L</mi><mi>j</mi></msub></mrow></msup><msub><mi>L</mi><mi>j</mi></msub></mrow></msub><msub><mi>N</mi><msub><mi>L</mi><mi>j</mi></msub></msub></mfrac></mrow></math>]]></maths>其中,<img file="FDA000025085769000313.GIF" wi="142" he="68" />表示被超矩形<img file="FDA000025085769000314.GIF" wi="95" he="45" />覆盖并且类标号为L<sub>j</sub>的样本数;<img file="FDA000025085769000315.GIF" wi="100" he="57" />表示被超矩形<img file="FDA000025085769000316.GIF" wi="94" he="46" />覆盖的样本数;<img file="FDA000025085769000317.GIF" wi="62" he="57" />表示类标号为L<sub>j</sub>的样本数;对于同时满足最小支持度阈值MST和最小置信度阈值MCT的规则,称为强规则;反之,则被判定是数据样本中的孤立点或噪声;步骤D,采用规则合并、维数约简、区间延伸方法简化所述超矩形规则;步骤D-1,所述规则合并是将距离比较近、支持度相对较小并且属于同一类的超矩形规则合并起来;同属于一类的两个不同超矩形,重叠程度越大表示两个超矩形距离越近,最小置信度阈值判断规则合并的有效性;步骤D-2,规则约简包括区间延伸和维数归约;区间延伸即将由SVM生成的if-then规则中属性值的闭合区间转换为开区间;而维数归约,则是将规则前件中的某一维属性剔除;在规则约简中,同样采用最小置信度阈值进行判断,如果约简后规则的置信度小于最小置信度阈值,则取消规则约简;步骤E,基于规则的样本识别过程,包括距离识别法和范围识别法;所述距离识别法即根据一个样本到其最近的超矩形规则的距离来确定其类标号;对每一个超矩形<img file="FDA00002508576900041.GIF" wi="124" he="47" />可以用其左下角<img file="FDA00002508576900042.GIF" wi="107" he="58" />和右上角<img file="FDA00002508576900043.GIF" wi="108" he="64" />来代表;空间中的样本X=(x<sub>1</sub>,…,x<sub>N</sub>)到超矩形<img file="FDA00002508576900044.GIF" wi="95" he="46" />的距离可以定义为:<maths num="0008"><![CDATA[<math><mrow><mi>D</mi><mrow><mo>(</mo><mi>X</mi><mo>,</mo><msup><mi>H</mi><mrow><mi>j</mi><mo>,</mo><msub><mi>L</mi><mi>j</mi></msub></mrow></msup><mo>)</mo></mrow><mo>=</mo><msqrt><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><mrow><mo>(</mo><msub><mi>w</mi><mi>fi</mi></msub><mo>&times;</mo><msup><mrow><mo>(</mo><msub><mi>d</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>X</mi><mo>,</mo><msup><mi>H</mi><mrow><mi>j</mi><mo>,</mo><msub><mi>L</mi><mi>j</mi></msub></mrow></msup><mo>)</mo></mrow><mo>)</mo></mrow><mn>2</mn></msup><mo>)</mo></mrow></msqrt></mrow></math>]]></maths>其中,w<sub>fi</sub>是第i维属性的权,<maths num="0009"><![CDATA[<math><mrow><msub><mi>d</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>X</mi><mo>,</mo><msup><mi>H</mi><mrow><mi>j</mi><mo>,</mo><msub><mi>L</mi><mi>j</mi></msub></mrow></msup><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><msubsup><mi>H</mi><mrow><mi>upper</mi><mo>,</mo><mi>i</mi></mrow><mrow><mi>j</mi><mo>,</mo><msub><mi>L</mi><mi>j</mi></msub></mrow></msubsup></mtd><mtd><mi>if</mi><msub><mi>x</mi><mi>i</mi></msub><mo>></mo><msubsup><mi>H</mi><mrow><mi>upper</mi><mo>,</mo><mi>i</mi></mrow><mrow><mi>j</mi><mo>,</mo><msub><mi>L</mi><mi>j</mi></msub></mrow></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>H</mi><mrow><mi>lower</mi><mo>,</mo><mi>i</mi></mrow><mrow><mi>j</mi><mo>,</mo><msub><mi>L</mi><mi>j</mi></msub></mrow></msubsup><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub></mtd><mtd><mi>if</mi><msub><mi>x</mi><mi>i</mi></msub><mo>&lt;</mo><msubsup><mi>H</mi><mrow><mi>lower</mi><mo>,</mo><mi>i</mi></mrow><mrow><mi>j</mi><mo>,</mo><msub><mi>L</mi><mi>j</mi></msub></mrow></msubsup></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mi>otherwise</mi></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>其中,<img file="FDA00002508576900047.GIF" wi="123" he="64" />是<img file="FDA00002508576900048.GIF" wi="117" he="64" />的第i个分量,<img file="FDA00002508576900049.GIF" wi="122" he="62" />是<img file="FDA000025085769000410.GIF" wi="107" he="58" />的第i个分量;所述范围识别法即根据规则的范围直接确定样本的类标号;对于每一个超矩形<img file="FDA000025085769000411.GIF" wi="121" he="48" />其规则范围为<maths num="0010"><![CDATA[<math><mrow><mo>[</mo><msubsup><mi>x</mi><mrow><mi>j</mi><mn>1</mn></mrow><mi>L</mi></msubsup><mo>,</mo><msubsup><mi>x</mi><mrow><mi>j</mi><mn>1</mn></mrow><mi>U</mi></msubsup><mo>]</mo><mo>&cap;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&cap;</mo><mo>[</mo><msubsup><mi>x</mi><mi>ji</mi><mi>L</mi></msubsup><mo>,</mo><msubsup><mi>x</mi><mi>ji</mi><mi>U</mi></msubsup><mo>]</mo><mo>&cap;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&cap;</mo><mo>[</mo><msubsup><mi>x</mi><mi>jN</mi><mi>L</mi></msubsup><mo>,</mo><msubsup><mi>x</mi><mi>jN</mi><mi>U</mi></msubsup><mo>]</mo><mo>,</mo></mrow></math>]]></maths><img file="FDA000025085769000413.GIF" wi="156" he="58" />分别代表第j类样本x第i个分量x<sub>i</sub>的取值区间;对于空间中的样本X=(x<sub>1</sub>,…,x<sub>N</sub>),若<maths num="0011"><![CDATA[<math><mrow><mrow><msub><mi>x</mi><mn>1</mn></msub><mo>&Element;</mo><mo>[</mo><msubsup><mi>x</mi><mrow><mi>j</mi><mn>1</mn></mrow><mi>L</mi></msubsup><mo>,</mo><msubsup><mi>x</mi><mrow><mi>j</mi><mn>1</mn></mrow><mi>U</mi></msubsup><mo>]</mo><mo>&cap;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&cap;</mo><msub><mi>x</mi><mi>i</mi></msub><mo>&Element;</mo><mo>[</mo><msubsup><mi>x</mi><mi>ji</mi><mi>L</mi></msubsup><mo>,</mo><msubsup><mi>x</mi><mi>ji</mi><mi>U</mi></msubsup><mo>]</mo><mo>&cap;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&cap;</mo><msub><mi>x</mi><mi>N</mi></msub><mo>&Element;</mo><mo>[</mo><msubsup><mi>x</mi><mi>jN</mi><mi>L</mi></msubsup><mo>,</mo><msubsup><mi>x</mi><mi>jN</mi><mi>U</mi></msubsup><mo>]</mo></mrow><mo>,</mo></mrow></math>]]></maths>则该样本属于第j类。
地址 210016 江苏省南京市白下区御道街29号