一种基于互信息的特征筛选和关联规则多标记分类算法
文献发布时间:2023-06-19 13:45:04
技术领域
本发明涉及多标记分类领域,尤其涉及一种基于互信息的特征筛选和关联规则多标记分类算法。
背景技术
随着机器学习理论与应用研究的深入,多标记学习中分类问题已成为人工智能领域的热点研究方向。由于多标记分类与现实应用紧密相关,针对多标记分类问题的研究具有重要的理论和应用价值。在经过大量调研的基础上,并结合自身的研究经历,认为多标记分类的研究存在以下问题需进行进一步的探究:
(1)多标记数据维度约减的研究。在多标记分类问题中,如文档分类、生物信息以及多媒体应用等现实世界问题中,存在大量的高维度的数据,并对分类造成一定的困难。于是,维度约减对于减少冗余属性干扰、提升多标记分类性能具有十分重要的意义。目前,已经出现了一些过滤、封装以及过滤-封装等多标记数据的维度约减方法。因此,探讨多标记学习中的维度约减方法依旧是未来研究的热点与难点。
(2)对噪音标记和弱标记的研究。多标记分类过程中,存在人工标记错误,造成示例的标记集合存在噪音,从而导致隶属于示例的标记不一定为其“有效”标记;另一方面,存在人工标记遗漏的情况,造成示例的标记存在缺失,从而导致不隶属于示例的标记有可能为其真实标记。噪音标记和弱标记的存在势必造成分类结果不理想。因此,如何减少数据噪声以及挖掘弱标记,也是以后要解决的一大技术难题。
发明内容
本发明提供一种基于互信息的特征筛选和关联规则多标记分类算法,以克服以上问题。
本发明包括:
S1、选取事务集,所述事务集包括:特征集、标签集;对特征集进行归一化处理,即将数据按比例缩放,使所述数据的值位于特定区间;所述特定区间的区间范围和缩放的比例均根基经验设定;
S2、使用互信息计算筛选特征集的特征值;
S3、使用DPC算法对标签集进行聚类,生成多个数据簇;
S4、使用关联规则算法,得出每个数据簇内的频繁项集并生成关联规则,选择多对一、一对一的两种关联规则;
S5、使用每个数据簇内的关联规则更新每一个数据的标签集;
S6、使用ML-KNN多标记分类算法对标签集进行训练和预测,得到新的事务集分类模型以对待分类事务集进行分类。
进一步地,S2包括:
S21、判断特征值是离散型还是连续型,去除离散型特征值;将每个连续型的特征值的值域划分为多个区间,所述区间数量根据经验设定;
S22、计算特征值与标签集的互信息值;
S23、计算每个特征值总的互信息值并取均值;
S24、自定义选取特征值的个数k,将特征值的互信息均值由大到小排序,选取前k个特征值。
进一步地,S3包括:
S31、确定聚类中心,包括:
S311、计算每两个数据点之间的距离;
S312、根据截断距离计算每个数据点的局部密度,局部密度的计算公式为:
其中,N为数据点个数,x
S313、对于任意数据点,计算密度最大的数据点和所述任意数据点的距离;
S314、画出决策图,标记聚类中心;
S32、分配除聚类中心以外的剩下的数据点,包括:
S321、将剩余数据点分配到局部密度比数据点大,且距离数据点最近的聚类中心;
S322、为每一个数据簇定义一个边界阈值,边界阈值的确定包括如下步骤:为每一个类簇划分边界区域,每一个类簇中找到边界区域中局部密度最大的点,该点的局部密度为边界阈值;
S323、去除小于局部密度小于边界阈值的点。
进一步地,S4中关联规则的生成,包括下述步骤:
S41、找出所有频繁项集,包括以下步骤:
S411、设置最小支持度,所述最小支持度为根据经验设置设置,最小支持度的范围为0.1-0.3;
S412、计算频繁项集中的每一项在标签集中出现的概率,选择所述概率大于等于所述最小支持度的数值的项;
S413、将筛选出的频繁项集两两结合,生成新的项集,重新计算每个项集在标签集集中出现的概率,再次按照最小支持度进行筛选;所述筛选包括:遍历判断每个项集在原始数据集中出现的频率是否满足给定的最小支持度,如果满足则保留,否则删除;
S414、以此类推,直到项集之间无法两两结合组合成新的频繁项集;
S42、根据频繁项集生成关联规则,包括以下步骤:
S421、设置最小置信度,所述最小置信度为根据经验设置,最小置信度的范围为0.7-0.8;
S422、找出频繁项集的非空子集;
S423、计算两个非空子集出现在一个标签集中的概率;
S424、找出概率大于等于最小置信度的集合生成关联规则;
S425、重复上述步骤,直至频繁项集无法生成关联规则。
进一步地,S6包括:
S61、通过knn算法寻找和样本最近的k个样本,k的数值根据经验设定;
S62、统计样本中每个类别的个数;
S63、采用native bayes算法计算每个标签的概率;
S64、输出类别概率。
本发明对特征集进行归一化处理,有助于聚类和后续处理。本发明将特征值筛选和关联规则更新标签集结合在一起,即考虑了特征与标签之间的相关性,使之能减少特征冗余和训练时间,又考虑到了标签之间的关联关系。本发明选取一对一和多对一的关联规则能大大减少关联规则的数量,同时达到较好的泛化效果。本发明聚类原则采取了dpc聚类算法,基于快速搜索和发现密度峰值的聚类算法,想法非常直观,能够快速发现密度峰值点,并能够高效进行样本分配和发现噪声点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图一作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明整体流程图;
图2为本发明具体步骤流程图;
图3为本发明中DPC聚类步骤流程图;
图4为本发明中互信息筛选流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1、图2所示,本发明包括以下步骤:
S1、对特征集进行归一化处理;
具体而言,因为所采用的数据集是用一堆数字表示的,所以进行距离计算的时候很容易受到范围比较大的值的影响,影响最终的实验效果,我们实验这里将数据按比例缩放,使之落入一个小的特定区间,即将数据统一映射到[-1,1]区间上。
S2、使用互信息计算筛选特征与标签相关性高的特征;
S3、使用DPC算法对实例标签集进行聚类,生成若干个簇;
S4、使用关联规则算法得出每个簇内的频繁项集并生成关联规则,选择其中多对一和一对一的关联规则;
S5、使用每个簇内的关联规则更新每一条数据的标签集;
具体而言,假设关联规则A->B的概率是0.85,那么如果该条数据所对应的标签集中有A标签,没有B标签,则将B标签添加到标签集中。
S6、使用ML-KNN多标记分类算法进行训练和预测,得到新的分类模型。
优选的,如图4所示,为互信息筛选流程图,S2包括:
S21、判断特征值是离散型还是连续型;将连续型的特征值划分为10个区间;
具体而言,连续型的数据不能计数,其数值表现连续,连续变量是一个叠加的过程。离散型可数,可以进行计数。离散值一般是整数,类别可计数,连续值一般是小数。
具体而言,将每个特征值的值域划分10个区域,分别用1-10表示。
S22、计算特征值与连续值的互信息值;
具体而言,使用互信息计算每一维特征-标记之间的相关性矩阵R:
R
其中:R
S23、计算每个特征值总的互信息值并取均值;
具体而言,如果某一维度特征与所有标记相关性的总和最大,则它就是最重要的特征,根据重要性进行排序,将会得到一个特征重要性的有序向量。
根据以上假设,本实验将矩阵R按列相加,得到特征重要性向量I:
计算完总和之后除以个数求出均值。
S24、自定义选取特征值的个数k,将特征值的互信息均值由大到小排序,选取k个特征值。
具体而言,K的个数并没有范围,会通过实验结果的好坏选择最合适的k的取值。
互信息的熵计算公式为:
I(X,Y)=H(X)+H(Y)-H(X,Y) (3)
其中,X为特征集,Y为标签集,H(X,Y)为X、Y的联合熵,I(X,Y)为X、Y的互信息值。
具体而言,互信息的熵用在计算特征值与标签值的互信息计算的过程。
优选的,如图3所示,S3包括:
S31、确定聚类中心,包括:
S311、计算任意两个数据点之间的距离;
具体而言,计算每两个数据点之间的距离,通过欧式距离计算每两个数据点的距离。
S312、根据截断距离计算任意数据点的局部密度;
具体而言,利用软统计公式计算局部密度
其中,N表示数据点个数,d
S313、对于任意数据点,计计算相对距离;
具体而言,将密度从大到小排序,找到密度最大的点,对于其他的点,找到密度比密度最大的点的序号,获取这些点距离最大点的距离,根据
计算找到最小值,保存最近邻点的编号。
S314、以相对距离为横轴,以局部密度为纵轴,画出决策图,将p和ρ都相对较高的点,即相对距离和局部密度都大的点标记为聚类中心;
S32、分配除聚类中心以外的剩下的数据点,包括:
S321、将剩余数据点分配到各个数据点的局部密度比数据点大,且距离数据点最近的聚类中心;
S322、为每一个数据簇定义一个边界阈值,所述边界阈值为划分为该类且距离其他类簇的点的距离小于对数据点进行密度计算的阈值的点;
S323、将局部密度最大的点的值作为阈值,小于该阈值的点作为噪声点去除,通过确定聚类中心及分配剩下的点来完成聚类。
具体而言,边界阈值的作用在于区分一般数据点和噪声点。首先为每一个数据簇划分边界区域,即划分到该类但是距离其它数据簇的点的距离小于d
优选的,S4关联规则的挖掘,包括:
S41、找出所有频繁项集,包括:
S411、设置最小支持度;
具体而言,确定试错期间可以容忍的误差范围和超过误差的概率,进而用中心极限定理之类的概率工具,计算可以保证这个误差和概率的样本大小,最后通过采样试错直至得到想要的结果,从而设置最小支持度。根据实验结果,进行调整,取到合适的值。最小支持度一般设置在0.1-0.3左右。
S412、计算项集中的每一项在事务集中出现的概率,即该项在事务集中出现的次数与事务集个数之比,筛选出概率大于等于最小支持度的项;
具体而言,事务集在本文中指标签集,下载的数据集中,包含特征集和标签集。标签集由若干标签组成L={l1,l2,…ln},例如:国旗中可能包含的若干种颜色等。如果每个实例符合该标签l,则l=1,否则为l=0。本文就是推测测试集中每个实例有哪些标签。
S413、将筛选出的项两两结合,生成新的项集,重新计算每个项集在事务集中出现的概率,再次按照最小支持度进行筛选;
具体而言,筛选操作为遍历判断其在原始数据集中出现的频率是否满足给定的最小支持度,如果满足则保留,否则删除。
S414、以此类推,直到无法组合成新的项集,得出所有的频繁项集;
S42、根据频繁项集生成关联规则,包括:
S421、设置最小置信度;
具体而言,确定试错期间可以容忍的误差范围和超过误差的概率,进而用中心极限定理之类的概率工具,计算可以保证这个误差和概率的样本大小,最后通过采样试错直至得到想要的结果,从而设置最小置信度。一般设置在0.7-0.8左右。
S422、找出频繁项集的非空子集;
S423、计算其中一个非空子集出现在事务集中时,另一个非空子集也出现的概率;
S424、找出概率大于等于最小置信度的集合生成关联规则;
S425、以此类推找出所有的关联规则。
具体而言,当频繁项集无法生成关联规则时,则判定已经找出了所有的关联规则。
优选的,S6包括:
S61、通过knn算法寻找和样本最近的k个样本;
具体而言,参数k为超参数,可以采用交叉验证的方式来确定k的最优解;一般比特征值所对应的互信息值的均值小一点。
S62、统计样本中每个类别的个数;
S63、采用native bayes算法计算每个标签的概率;
具体而言,朴素贝叶斯公式为:
P(A|B)=P(B|A)*P(A)/P(B) (6)
S64、输出类别概率。
实施例2
本实施例将本发明步骤结合用到的算法进行介绍:
step1:需要度量距离的模型,一般在特征值差距较大时,都会进行归一化。不然会出现“大数吃小数”的情况,根据数据集的特点将特征值归一化到[-1,1]的范围内,本文使用MaxAbsScaler对特征集进行归一化处理;
step2:考虑到当特征集过多时,会难以计算和造成特征冗余,对于结果的精度有一定的影响,所以使用互信息计算筛选特征与标签相关性高的特征;步骤为:
判断特征值是离散型还是连续型;
将连续型的特征值划分为10个区间;
计算特征值与连续值的互信息值;
计算每个特征值总的互信息值并取均值。
自定义选取特征值的个数k,然后将特征值的互信息均值由大到小排序,选取k个特征值。
互信息衡量的是某个词和类别之间的统计独立关系,某个词t和某个类别Ci传统的互信息定义如下:
互信息是计算语言学模型分析的常用方法,它度量两个对象之间的相互性。在过滤问题中用于度量特征对于主题的区分度。互信息的定义与交叉嫡近似。互信息本来是信息论中的一个概念,用于表示信息之间的关系,是两个随机变量统计相关性的测度,使用互信息理论进行特征抽取是基于如下假设:在某个特定类别出现频率高,但在其他类别出现频率比较低的词条与该类的互信息比较大。通常用互信息作为特征词和类别之问的测度,如果特征词属于该类的话,它们的互信息量最大。由于该方法不需要对特征词和类别之间关系的性质作任何假设,因此非常适合于文本分类的特征和类别的配准工作。
互信息计算一般是对离散值X,Y之间进行计算,本文中的特征值大部分都是连续值,所以将连续值离散化,每个值属于某一个区间,然后计算互信息值。
step3:本算法利用聚类算法将特征值划分到不同的簇中,因为同一簇中,数据集的特征越相似,那么在每个簇中根据关联规则更新标签集就更精确,避免不同簇中标签的意思不同。由于DPC聚类能够实现任意形状数据的高效聚类,且可以一次性确定聚类中心,因此本算法使用DPC进行聚类;步骤为:
划分聚类中心;
分配除聚类中心以外的剩下的数据点;
将剩余数据点分配到密度比数据点大且距离数据点最近的聚类中心;
为每一个类簇定义一个边界阈值,所述边界阈值为划分为该类且距离其他类簇的点的距离小于对数据点进行密度计算的阈值的点;
将局部密度最大的点的值作为阈值,小于该阈值的点作为噪声点去除,完成聚。
DPC聚类算法是2014年在Science上提出的聚类算法,该算法能够自动地发现簇中心,实现任意形状数据的高效聚类。是一种不需要迭代的,可以一次性找到聚类中心的方法聚类方法。该算法基于两个基本假设:
①簇中心(密度峰值点)的局部密度大于围绕它的邻居的局部密度;
②不同簇中心之间的距离相对较远。
DPC算法分为两个步骤完成聚类,如图2所示:
(1)确定聚类中心
给每一个数据点xi,赋予局部密度ρi和相对距离δi这两个属性,并选择ρi和δi均较大的数据点作为聚类中心,对应于上面给出的两个基本假设。为了可以自动确定聚类中心,DPC算法借助决策图(对确定聚类中心有决定作用的图)选择聚类中心。决策图的绘制以ρi为横坐标,δi作为纵坐标。如果选3个聚类中心那么303、98、202会被选为聚类中心。
①局部密度ρi:与点xi的距离小于dc的点的个数
包括Cut-off kernel和Gaussian kernel两种计算方式.
Cut-off kernel
dij:数据点xi和xj的距离.
dc:截断距离。定义为数据点xi和xj之间相似度,按距离矩阵从小到大排列取2%位置处的值。是唯一的输入参数。
X(.)为逻辑判断函数
Gaussian kernel
当数据集较小时,局部密度ρi以高斯核函数的形式被定义。
②相对距离δi:
对局部密度不是最大的点xi,到所有比其局部密度ρi还大的点的距离的最小值。
对于密度最大的点,直接把距离矩阵最大值赋给他。
实际情况中,为了有助于更准确地确定聚类中心,算法定义一个参数γi.,DPC算法将根据γi绘制决策图,选择γi大的点作为聚类中心。
(2)分配剩下的点
DPC算法确定好聚类中心后,需要将剩余的点分配到相应的类簇中.剩余的点分为一般的数据点和噪声点。
②将所有剩下的点归于局部密度等于或者高于其的最近点一类
②为每一个类簇定义一个边界阈值,边界阈值即为划分为该类但是距离其他类簇的点的距离小于dc的点
③将局部密度最大的点的值作为阈值,小于该阈值的点将作为噪声点去除完成聚类。
Step4:使用关联规则算法挖掘出每个簇内的频繁项集并生成关联规则,选择其中多对一和一对一的关联规则;本文使用Apriori算法获取关联规则,步骤为:
关联规则的挖掘总共分为两大步骤,第一步是找出所有频繁项集,第二步根据频繁项集生成关联规则。
找出所有频繁项集:
设置最小支持度;
计算项集中的每一项在事务集中出现的概率,筛选出概率大于等于最小支持度的项;
将筛选出的项两两结合,生成新的项集重新计算每个项集在事务集中出现的概率,再次按照最小支持度进行筛选;
以此类推,直到无法组合成新的项集;
得出所有的频繁项集:
根据频繁项集生成关联规则;
设置最小置信度;
找出频繁项集的非空子集;
计算非空子集A出现在事务集D中时,非空子集B也出现的概率,其中B中的项不含在A中;
找出概率大于等于最小置信度的集合A,B生成关联规则A=>B;
以此类推找出所有的关联规则;
找出多对一和一对一的关联规则;
Apriori算法是经典的挖掘频繁项集和关联规则的数据挖掘算法。Apriori在拉丁语中指"来自以前"。当定义问题时,通常会使用先验知识或者假设,这被称作"一个先验"(apriori)。Apriori算法的名字正是基于这样的事实:算法使用频繁项集性质的先验性质,即频繁项集的所有非空子集也一定是频繁的。Apriori算法使用一种称为逐层搜索的迭代方法,其中k项集用于探索(k+1)项集。首先,通过扫描数据库,累计每个项的计数,并收集满足最小支持度的项,找出频繁1项集的集合。该集合记为L1。然后,使用L1找出频繁2项集的集合L2,使用L2找出L3,如此下去,直到不能再找到频繁k项集。每找出一个Lk需要一次数据库的完整扫描。Apriori算法使用频繁项集的先验性质来压缩搜索空间。
(1)相关概念
①支持度(Support):支持度表示项集{X,Y}在总项集里出现的概率。公式为:
其中,I表示总事务集。num()表示求事务集里特定项集出现的次数。num(I)表示总事务集的个数;num(X∪Y)表示含有{X,Y}的事务集的个数(个数也叫次数)。
②置信度(Confidence):置信度表示在先决条件X发生的情况下,由关联规则”X→Y“推出Y的概率。即在含有X的项集中,含有Y的可能性,公式为:
③提升度(Lift):提升度表示含有X的条件下,同时含有Y的概率,与Y总体发生的概率之比。
④强关联规则:满足最小支持度和最小置信度的关联规则。
⑤连接策略:频繁(k-1)项集Lk-1的自身连接产生候选k项集Ck。Apriori算法假定项集中的项按照字典序排序。如果Lk-1中某两个的元素(项集)itemset1和itemset2的前(k-2)个项是相同的,则称itemset1和itemset2是可连接的。所以itemset1与itemset2连接产生的结果项集是{itemset1[1],itemset1[2],…,itemset1[k-1],itemset2[k-1]}。连接步骤包含在下文代码中的create_Ck函数中。
⑥剪枝策略:由于存在先验性质:任何非频繁的(k-1)项集都不是频繁k项集的子集。因此,如果一个候选k项集Ck的(k-1)项子集不在Lk-1中,则该候选也不可能是频繁的,从而可以从Ck中删除,获得压缩后的Ck。下文代码中的is_apriori函数用于判断是否满足先验性质,create_Ck函数中包含剪枝步骤,即若不满足先验性质,剪枝。
⑦删除策略:基于压缩后的Ck,扫描所有事务,对Ck中的每个项进行计数,然后删除不满足最小支持度的项,从而获得频繁k项集。删除策略包含在下文代码中的generate_Lk_by_Ck函数中。
(2)实现步骤
一般而言,关联规则的挖掘是一个两步的过程:
Step1:找出所有的频繁项集
①每个项都是候选1项集的集合C1的成员。算法扫描所有的事务,获得每个项,生成C1。然后对每个项进行计数。然后根据最小支持度从C1中删除不满足的项,从而获得频繁1项集L1。
②对L1的自身连接生成的集合执行剪枝策略产生候选2项集的集合C2,然后,扫描所有事务,对C2中每个项进行计数。同样的,根据最小支持度从C2中删除不满足的项,从而获得频繁2项集L2。
③对L2的自身连接生成的集合执行剪枝策略产生候选3项集的集合C3,然后,扫描所有事务,对C3每个项进行计数。同样的,根据最小支持度从C3中删除不满足的项,从而获得频繁3项集L3。
④以此类推,对Lk-1的自身连接生成的集合执行剪枝策略产生候选k项集Ck,然后,扫描所有事务,对Ck中的每个项进行计数。然后根据最小支持度从Ck中删除不满足的项,从而获得频繁k项集。
Step2:由频繁项集产生强关联规则
①对于每个频繁项集itemset,产生itemset的所有非空子集(这些非空子集一定是频繁项集);
②对于itemset的每个非空子集s,如果
Step5:使用每个簇内的关联规则更新每一条数据的标签集;
Step6:利用ML-KNN多标记分类算法进行训练和预测,得到新的分类模型。
目前主流的多标记算法包括ML-KNN、ML-DT、Rank-SVM、CML等,其中ML-KNN算法思想最简单。MLKNN是由传统的K近邻(K-nearest neighbor,KNN)发展而来的,对于每一个测试样本,在训练集中找到它的K近邻。然后,基于邻居样本的统计信息,如属于相同类别的邻居的个数,用最大后验概率原则(MAP)决定测试样本的标签集合。具体步骤如下:
①通过knn算法寻找和样本最近的K个样本。
②统计k个样本中每个类别的个数。
③根据第二步的统计,采用native bayes算法计算每个标签的概率。
④输出类别概率。
步骤一:统计类别L在样本中的概率。
s:参数,用于数据平滑
m:是标准样本个数。
步骤二:计算每个样本的K个最近邻中,在样本标签为L的条件下,
步骤三:新样本估计
(这里native bayes中的分母省略计算,比较分子大小就够了)
其中:y
实施例3
1.数据集
数据集选用Emotions数据集、Flags数据集、Yeast数据集和Genbase数据集这4个数据集,如表1所示:
表1数据集
2.评价指标
本文选用Hamming loss、Ranking loss、One errror、Coverage和Averageprecision这5个评价指标,前四个评价指标值越小越好,后一个评价指标值越大越好。以下是对这5个指标的简要介绍:
(1)Hamming loss
该指标考察样本在单个标记上的误分类情况,即隶属于该样本的概念标记未出现在现在标记集合中或不属于该样本的概念标记出现在标记集合中:
其中,算子Δ用于表示两个集合之间的对称差,|.|为返回集合大小.
(2)Ranking loss
该指标考察在样本的概念标记排序序列中出现排序错误的情况:
rloss
其中,
(3)One error
该指标计算每个样本标签集中概率最大的那个标签在不在标签为1的部分里面,在记为0,不在则记为1。
(4)Coverage
该指标计算每个样本的标签集中,按照概率从大到小排列,到排多少的时候能把标签为1的标签覆盖完毕。即隶属于该样本的所有概念标记所需的搜索深度。
(5)Average precision
该指标考察在样本的概念标记排序序列中,排在属于该样本概念标记之前的标记仍属于样本标记的情况。
3.实验结果
数据集选用Emotions数据集、Flags数据集、Yeast数据集和Genbase数据集这4个数据集;如表2-表5所示,为本发明以及传统的ML-KNN、MI-ML-KNN方法对四个数据集进行分类后的结果对比。
表2 Emotions数据集
选取特征个数:45,划分区间:10,最小支持度:0.1,最小置信度:0.7。
表3 Flags数据集
选取特征个数:7,划分区间:10,最小支持度:0.1,最小置信度:0.7
表4 Yeast数据集
选取特征个数:80,划分区间:10,最小支持度:0.1,最小置信度:0.7
表5 Genbase数据集
选取特征个数:47,划分区间:10,最小支持度:0.1,最小置信度:0.7。
实施例4
多标记分类是机器学习领域最为热点的问题之一,目前在文本分类,图片和视频分类,情感分类,生物,医疗等实际应用领域也有很大发展。本文数据集取自Mulan项目multilabel datasets,其中,Flags是对各国国旗颜色的多标记分类,数据集共有194个实例,特征值有19个,包含属于的洲,语言,面积,宗教信仰等,标签值有7个,即七种颜色。本文即根据特征信息,为各个国家的国旗分配多个颜色。
本文使用MIRD-ML-KNN算法对Flags数据集进行多标记分类,经过特征筛选,选取若干个与标签互信息值高的特征,使用关联规则更新标签集,进行多标记分类。根据特征筛选,结合评价指标,选取特征个数为7,特征集共划分10个区间,生成关联规则中,最小支持度为0.1,最小置信度为0.7。根据实验结果所示,本文提出的方法与前两种方法对比,在多数评价指标上,均优于前面两种方法,证明了本文所提方法的有效性,在其它数据集上也证明了此观点,所以本文所提的方法在实际应用领域中有一定的实用性。
有益效果:
1、本发明对特征集进行归一化处理,有助于聚类和后续处理。本发明对连续值的特征值离散化以便进行互信息计算。本发明将特征值筛选和关联规则更新标签集结合在一起,即考虑了特征与标签之间的相关性,使之能减少特征冗余和训练时间,又考虑到了标签之间的关联关系。本发明选取一对一和多对一的关联规则能大大减少关联规则的数量,同时达到较好的泛化效果。本发明聚类原则采取了dpc聚类算法,基于快速搜索和发现密度峰值的聚类算法,想法非常直观,能够快速发现密度峰值点,并能够高效进行样本分配和发现噪声点。
2、本发明相较于ML-KNN算法和基于互信息的多标记分类算法(MI-ML-KNN)而言均优于前两种算法,且在五个评价指标上均表现良好。实验表明通过互信息计算特征和标记之间的相关性进行特征筛选是有效的,且MI-ML-KNN方法要优于ML-KNN方法。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。