1.一种计算机上执行的基于概率近邻的半监督分类方法,所述方法针对现有的基于图的半监督分类中,相似度图的构建使得分类不准确的问题,其特征在于,所述方法包括如下步骤:S100、准备原始数据集,所述原始数据集包括原始数据及其匹配的标签,原始数据的特征通过数据属性来描述,原始数据包括已标记数据和未标记数据两部分;
S200、对步骤S100准备的数据集进行预处理,得到已标记数据的标签指示向量矩阵VL;
S300、构造原始数据集的概率近邻矩阵S;
S400、构造原始数据集的类别信息矩阵F和概率转移矩阵P,将概率转移矩阵P初始化为所述步骤S300中得到的概率近邻矩阵S;
S500、基于步骤S400中初始化后的概率转移矩阵P,在原始数据集上进行标签传播,得到新的类别信息矩阵F’;
S600、使用已标记数据的标签指示向量矩阵VL对标签传播后的新的类别信息矩阵F’的已标记数据矩阵FL进行更新,防止标签信息的污染;
S700、检查步骤S500中得到的新的类别信息矩阵F’是否收敛,如果新的类别信息矩阵F’已经收敛不再变化,进入步骤S800,否则,返回步骤S500;
S800、通过收敛之后的新的类别信息矩阵F’得到原始数据集的分类结果;
所述步骤S100中的数据集选用USPS、COIL1、COIL2数据集之一;
所述方法在构图时增加使用数据的类别信息来计算两个数据点之间的相似度;
所述方法定义了一个概率近邻矩阵,将构图问题看作是一个概率问题,使机器学习的分类结果更为准确。
2.根据权利要求1所述的方法,所述步骤S200具体包括:S201、将原始数据集定义为 ,其中 代表一个n行d列的矩阵,n是数据点的个数,d是数据点的属性个数;定义已标记数据矩阵为 ,未标记数据矩阵为 ,其中n1为已标记数据点的个数,n2为未标记数据点的个数,n=n1+n2;
S202、根据已标记数据对应的标签构造已标记数据的标签指示向量矩阵:根据原始数据集已标记数据对应的标签构造标签指示向量矩阵 ,其中n是数据的个数,c是数据类别的个数,该标签指示向量矩阵V的第i行是第i个数据点的标签指示向量,如果第i个数据点的类别是j,那么该行的第j个元素为1,该行其余数据为0;根据原始数据中已标记数据的顺序,抽选标签指示向量V中的对应行构成矩阵 ,作为已标记数据的标签指示向量矩阵。
3.根据权利要求2所述的方法,所述步骤S300具体包括:S301、定义关于数据的增广矩阵 ,d是数据维度、表示数据属性的个数,c表示数据类别的个数,n是数据点的个数, ;
S302、定义 作为数据点之间的相似度矩阵,以欧氏距离作为测度计算出数据点i和j之间的相似性 ,令 ,作为矩阵D中第i行第j列的具体数值,将矩阵D按行升序排列,xi表示原始数据集X的第i行,xj表示原始数据集X的第j行;
S303、定义原始数据集的概率近邻矩阵为 ,S是n*n的矩阵,S矩阵中第i行第j列的值 代表数据点i和数据点j成为概率近邻的可能性,定义k为近邻数,根据K‑近邻(KNN)方法,将矩阵D按行选取前k个,得到K‑近邻,然后在K‑近邻的基础上构造概率近邻,具体为:定义 为数据点i和它的第k个近邻之间成为概率近邻的概率,由公式得到;
再通过公式 进行赋值,S(i,k)代表S矩阵中第i个数据点的第k个近邻的取值,将S矩阵中未赋值的元素赋值为0,得到赋值后的概率近邻矩阵S;其中代表矩阵D中第i行第k+1列的具体数值, 是矩阵D中第i行第j列的具体数值,是矩阵D中第i行第1列的具体数值,n是数据点的个数,X表示原始数据集。
4.根据权利要求3所述的方法,所述步骤S400具体包括:(0)
构造原始数据集的类别信息矩阵F: ,F 代表初始化的F矩阵:构造原始数据集的概率转移矩阵P:将概率转移矩阵P初始化为所述步骤S300中得到的(0)赋值后的概率近邻矩阵S,有:P =S;其中, 是概率转移矩阵, 代表初始化的P矩阵,Pi,j表示P矩阵中第i行第j列的数值,表示第i个数据点将以概率 Pi,j传播给第j个数据点。
5.根据权利要求4所述的方法,所述步骤S500具体包括:(t)
通过公式 进行标签传播,其中上标t表示迭代次数,F’ 表示第t次迭代(t+1)
过程得到的F’矩阵,F’ 表示第t+1次迭代过程得到的F’矩阵,上式表示从第t次到第t+1(t)次的标签传播过程,其中当t=0时,F’ 表示原始的类别信息矩阵F。
6.根据权利要求5所述的方法,所述步骤S600具体包括:FL=VL,每次迭代标签传播结束后将已标记数据FL重新赋值为VL,FL表示类别信息矩阵F的已标记数据矩阵,VL表示已标记数据的标签指示向量矩阵。
7.根据权利要求6所述的方法,所述步骤S800中:收敛之后的新的类别信息矩阵F’每一行数据表示该数据的类别,如果 值为1,则第i个数据点的类别为j,从而从F’矩阵中能获得每个数据对应的类别,得到原始数据集的分类结果。
8.根据权利要求3所述的方法,所述步骤S303中,k近邻数的取值选择为5 20。
~