发明内容
本发明的目的主要是为了克服常用分类器对样本量、高维以及训练过程存在的问题,提出了一种优化的支持向量机文本分类方法,解决医疗影像检查基于文本数据的疾病自动分类。
本发明主要按照以下技术方法实现:首先对医疗影像信息系统RIS数据库中的检查文本用K-means聚类,生成标准医疗影像疾病语料库,该语料库作为分类器训练样本以及测试样本。其次,再使用训练样本对支持向量机分类器进行训练,生成分类标准后再使用该分类模型对分类样本分类。最后针对分类结果存在的不足之处,提出支持向量机分类器优化的训练过程。
本发明的具体步骤是:
步骤1:首先对RIS数据库中的检查文本数据使用k-means聚类方法聚成十大类,聚成十个类别后,借助国际疾病类型分类标准ICD-10将这十个类别进行疾病类型编码。将编码后的十大类文本数据作为医疗影像疾病标准语料库,并以此作为分类的训练数据以及测试数据。K-means聚类的具体步骤可以按照以下步骤来完成:
1)对选出的检查文本数据先进行预处理,主要对检查文本数据进行词性的标注,构成统计词典,对文本数据进行词条切分,并使用中文分词程序ICTCLAS完成分词。
2)建立检查文本数据的空间向量并降维。该步骤主要是将检查文本数据转化成计算机能识别的形式,采用空间向量模型来表示文本信息。由于生成的向量空间模型其维数一般都很大,需要经过稀疏降维处理。
3)检查文本数据聚类处理。采用平面划分的聚类过程如下:
(1)确定生成的簇的数目k;
(2)生成k个原始聚类中心S=(s1,s2,...,sn);
(3)对D中的每个文件di,依次计算与聚类中心S中sj的相似度sim(di,sj);
(4)从上面计算出的相似度中选出最大相似度,并将di归入到sj中;
(5)重复(3)、(4)两个步骤若干次,直到所有检查文本数据都完成聚类;
(6)将聚类完成的十个大类按照国际疾病分类标准ICD-10进行编码并确定其疾病类型。
步骤2:从十大类检查文本数据中抽取其中一部分记录作为分类的训练模型,而将剩余的检查文本数据作为测试样本,用于检测分类模型的分类精度。文本分类使用支持向量机方法,具体建立支持向量机分类器(SVM分类器)过程如下所示:
1)检查文本预处理。首先要对训练样本进行文本预处理,由于在文本聚类过程中已经检查过文本的是否缺失以及是否存在脏数据等情况,故该步骤无需重复以上步骤。只需使用ICTCLAS汉语分词系统对训练样本进行分词处理。
2)检查文本表示。将上述预处理完成的文本转换成计算机能明白的形式,文本表示模型较多,其优缺点也不相同,本方法中使用的向量空间表示模型。其向量空间模型可以表示为V=(t1,w1;t2,w2;...;tn,wn)。其中(t1,t2,...,tn)表示特征词条,(w1,w2,...,wn)表示特征词条对应的权重。
3)对检查文本中的特征词条进行降维处理,即特征选择处理。特征选择的方法很多,本方法使用互信息(MI),互信息用于描述两个变量间的相关程度,若两者的相关程度越高,则其MI值越大,反之则越小。首先计算出所有检查文本中特征词条与类别之间的MI值,然后设定一个阈值,将大于该阈值的特征词条留下,而删除小于该阈值的特征词条。
4)支持向量机分类器的建立。构建SVM分类器方法最关键的是找出一个最优超平面将样本数据分为两类,最优超平面不仅能将两类正确分开,而且要使分类间距最大。当分类线性方程为g(x)=w·x+b,对它进行归一化处理使其满足|g(x)|≥1,当条件等于1的时候可以求得其分类间隔为2/||w||,要使分类间隔最大等价于||w||最小。转化为求解的最小值,针对该最优求解,引入Lagrange函数来解决该约束最优化问题,转化为目标函数:
由Lagrange极值定理可以求得最优解w*和b*(其中yi∈{+1,-1}正表示属于该类,负表示不属于该类)。最后即可得到最优分类函数为:
如果f(x)大于0表示该样本属于yi类,小于0则表示不属于yi类。
针对分类过程中存在的非线性问题,可以引入核函数k(xi,xj)将样本点转化为高维、线性可分。常用的核函数有线性核函数、多项式核函数、径向基核函数等,实际应用中考虑参数的选择问题,选择线性核函数来实现该过程。其最后判断是否属于该类别也同线性问题一致。
5)构造多类SVM分类器。上述建立的SVM分类器只能处理两分类问题,由于检查文本的分类存在多类问题,必须构造多类SVM分类器。构造多类SVM分类器方法很多,本文采用的是二叉树方法来构造。其主要思想是将第i类作为+1类,第i+1到i+n类为-1类,随着i的递增依次建立多个分类器即可。对待分类样本x时,从第一个分类器开始,如果大于0则表示属于第一类并停止决策,否则继续使用第二个分类器,以此类推直到判断出x所属类别为止。
步骤3:针对检查文本分类过程中SVM分类器的建立过程进行优化。使用训练样本完成SVM分类器的建立后,将剩余的样本作为测试样本来检测分类器的分类精度。针对实际过程中,可能存在由于训练样本量过少导致训练出来的SVM分类器对测试过程造成误分的情况,故在完成测试集的分类后,通过建立分类结果的混淆矩阵,来判断哪些检查文本被错分,找出这些错分的文本并将其加入到原属类别的训练样本中,以此来组成新的训练样本,最后再将新的训练样本通过步骤2来进行训练SVM分类器。该方法在一定程度上能提高SVM分类器的学习能力,使其训练样本能趋于一种稳定的状态,能有效的与实际分类情况结合起来。
这种优化后的SVM分类方法,不仅保留了支持向量机原先的优点,首先针对高维问题,特别是在分类文本很大的时候,SVM分类器与其他分类算法相比,具有无法比拟的优势;其次在训练样本数量有限的情况下,SVM分类器能在小样本的情况下更有效的完成检查文本分类任务,相比其他方法必须在样本无限大的情况下才能满足分类精度,SVM分类器能更接近实际应用;最后,经过优化后的SVM分类器,一定程度上提高了其泛化能力以及学习能力,使得其在检查文本分类应用过程中能展示出更好的效果。
具体实施方式
下面结合附图以及相关的实施例,对本发明的具体实施方式作进一步的详细说明描述。
本发明的核心思想主要是使用K-means聚类完成对检查文本数据的聚类,并将聚类好的检查文本作为SVM分类器的训练集以及测试集,最后针对检查文本的特有情况,对SVM分类器的训练过程使用了一种优化的训练过程,以此来提高SVM分类器的分类效果。整个分类流程图如图1所示,详细的步骤如下所示。
步骤1:k-means聚类过程如图2所示,主要目标是将RIS数据库中两万个检查文本数据聚类成十个大类,便于后期的检查文本自动分类的实现。K-means聚类的具体步骤可以按照以下步骤来完成:
1.1对选出的检查文本数据进行预处理,对文本数据进行词性标注,构成统计词典,对文本进行词条切分,并使用中文分词程序ICTCLAS完成分词。
1.2建立检查文本的空间向量模型并降维。该步骤主要是将文本信息转化成计算机能识别的形式,采用空间向量模型来表示文本信息,表示为V(di)=((t1,wi1),(t2,wi2)...(tn,win)),其中di表示文本,tn表示检查文本数据中互不相同的特征词条,win表示特征词条tn在文本中的权重。生成的向量空间模型其维数一般都很大,使用稀疏降维处理,将权重为0的特征词条删除,剩下的特征词条能更好的代表该检查文本信息。
1.3检查文本数据聚类处理。对于给定的检查文本集D={d1,d2,...,dn},采用平面划分的聚类过程如下:
(1)确定生成的簇的数目k;
(2)生成k个原始聚类中心S=(s1,s2,...,sn);
(3)对D中的每个文件di,依次计算与聚类中心S中sj的相似度sim(di,sj),相似度的计算主要使用余弦公式:
(4)从上面计算出的相似度中选出最大相似度,并将di归入到sj中;
(5)重复(3)、(4)两个步骤若干次,直到所有文本都完成聚类;
(6)将聚类完成的十个大类按照国际疾病分类标准ICD-10进行编码并确定其疾病类型。
步骤2:待完成聚类后,从聚类好的十大类检查文本信息中抽取其中一部分数据作为分类器的训练样本,由于SVM分类器支持小样本训练数据,故每类可选取200个样本,组成2000个训练样本集,而将剩余的文本信息作为测试样本来检测分类模型的精确度。SVM分类器训练过程以及测试过程如图3所示,具体步骤为:
2.1检查文本预处理。对训练数据进行文本预处理,并使用ICTCLAS汉语分词系统对训练样本进行分词处理,将检查文本数据中的停顿词、空格以及一些没有意义的词条删除。
2.2检查文本表示。将上述分词后的检查文本数据转换成计算机能明白的形式,使用的向量空间表示模型。其主要方法是:训练样本集中某个检查文本di中,将分词后的词条表示成特征集合为(t1,t2,...,tn),并计算出每个特征项的权重为(w1,w2,...,wn),其中n为特征词条的数量。将特征集合以及特征权重组合成向量,向量空间模型表示为V=(t1,w1;t2,w2;...;tn,wn)。
对于权重计算方法,权重函数为Wik=tfik×IDFk,为了降低高频特征对低频特征的过分抑制,对权重函数进行归一化处理后,可得到其归一处理函数为:
其中tfik表示特征词条tk在文本di中出现的次数;N为训练样本总数;nk表示出现该特征词条的文本数;k=1,2,...,p,p为特征词条的个数。
2.3对检查文本数据中的特征词条进行降维处理即特征选择处理,使用互信息特征选择。首先计算出所有训练文本中特征词条与类别之间的MI值,然后设定一个阈值,将大于该阈值的特征词条留下,而删除小于该阈值的特征词条。对于特征词条tk,求MI值的公式为:
其中P(di)表示di类检查文本在训练样本中所占的比例;P(tk)表示类别di包含特征词条tk文本数量除以训练样本数;P(di|tk)表示文本包含特征词条tk时属于di类的概率。
2.4支持向量机分类器的建立。构建SVM分类器最关键的是找出一个最优超平面。假设检查文本数据中某两类的分类线性方程为g(x)=w·x+b,对它进行归一化处理使其满足|g(x)|≥1,当条件等于1的时候可以求得其分类间隔为2/||w||,要使分类间隔最大等价于||w||最小,转化为求解的最小值,针对该最优求解,引入Lagrange函数来解决该约束最优化问题,转化为目标函数:
由Lagrange极值定理可以求得最优解w*和b*分别为: (其中yi∈{+1,-1}正表示属于该类,负表示不属于该类)。最后即可得到该两类检查文本信息的最优分类函数为:
如果f(x)大于0表示该文本属于yi类,小于0则表示不属于yi类。
在处理检查文本过程中存在非线性的情况,需将非线性问题转化为线性问题求解,其转化过程只需要引入核函数k(xi,xj)就可实现。将线性核函数k(xi,xj)=xi·xj来代替x值,根据上述推理过程,即可得到最优的分类函数为:
判断是否属于该类别也同上所述。
2.5构造多类SVM分类器。由于要将影像检查数据分类十大类,故必须要建立多类分类器才能有效的处理该问题。多类SVM分类器的建立过程主要为:(1)首先可以先取呼吸系统疾病类别中的训练数据作为+1的训练数据,而将剩下的九类训练数据作为-1的训练数据,以此就可以建立呼吸系统疾病的SVM分类决策函数;(2)将循环系统疾病类别中的训练数据作为+1的训练数据,而将除了呼吸系统疾病以外的八类训练数据作为-1的训练数据,这样就可建立循环系统疾病的SVM分类决策函数;(3)按照上述两部就可以得到其余六类的SVM分类决策函数,最后将神经系统疾病的训练数据作为+1的训练数据,将最后剩下的泌尿生殖系统疾病的训练样本最为-1的训练数据,就可以得到神经系统疾病以及泌尿生殖系统疾病的SVM分类决策函数。多类SVM分类器建立好后,对于测试样本数据X,将从呼吸系统疾病第一个SVM分类器开始判断,如果属于该类,则停止分类,否则进入第二、三以及最后一个SVM分类器来完成最后的分类。
步骤3:对SVM分类器的训练过程进行优化改进,使其能够有效适应医疗疾病文本的特殊性,该优化过程如图4所示。(1)在完成测试集的分类后,通过建立分类结果的混淆矩阵,来判断哪些检查文本被错分。(2)找出这些错分的文本并将其加入到原属类别的训练样本中,以此来组成新的训练样本。(3)再将新的训练样本通过步骤2来进行训练SVM分类器,再对测试数据进行分类,对测试结果进行判断,如果分类效果没有得到优化改善则继续进行前两个步骤,直到其分类效果得到改善。(4)将最后优化好的SVM分类器作为最优分类器,以该分类器对后期的RIS中的检查文本数据进行自动分类。