Incomplete data classification with view-based decision tree

Incomplete data classification with view-based decision tree 基于视图的决策树的不完全数据分类

摘要:数据质量问题会给数据分析带来严重的问题。例如,缺失的值可能会降低分类的准确性。由于传统的分类方法只能应用于完整的数据集,本文提出了一个通用的不完整数据分类模型,其中现有的分类方法可以有效地结合。首先,我们根据信息增益度量选择合适的属性子集,从不完整数据中生成完整视图。然后使用这些选择的视图来获得多个基本分类器。最后,将基本分类有效地组合为最终的决策树分类器。在实际数据集上的大量实验结果表明,该方法优于现有方法。
原文地址

Hekai Huang, Hongzhi Wang, Ming Sun: Incomplete data classification with view-based decision tree. Appl. Soft Comput. 94: 106437 (2020)

1. 简介

分类广泛应用于数据挖掘[1]、机器学习[2]和模式识别[3]等领域。虽然已经提出了各种分类算法,但大多数算法都是基于输入数据完整的假设。然而,在实践中,缺失值是不可避免的[4]。数据不完整是一个广泛领域的数据质量问题,包括社会科学、计算机视觉、生物系统和遥感[5]。例如,生育中心可能会遗漏一些产前记录[6]。造成这种缺陷的原因有很多,包括程序不完善、测量不正确、设备错误等[6]。又如,在遥感中,某些地区只部署了一部分传感器,可能会出现数据不完整的情况[5]。此外,如果数据来自问卷调查,则有可能丢失值,因为有人会试图逃避某些特定的问题。由于许多统计模型和机器学习算法依赖于完整的数据集,因此对缺失数据进行适当的处理是至关重要的[7]。
要处理这个问题,最简单的方法是忽略缺失值的样本[8],即如果一个样本在任何属性上包含缺失值,则该样本将被丢弃。显然,这种方法有一个关键的缺陷,即不能利用不完整样本中的有用信息,因此在最坏的情况下,只能留下一小部分样本,甚至一个样本都不能留下。
另一种方法是将不完整的数据集通过填充所有的空白转化为完整的数据集,然后在新的数据集上应用传统的分类算法。填充缺失值的过程被称为数据插补(data imputation)。到目前为止,已经开发了大量的填充技术[9-16]。有些用其均值或最近邻替换缺失值[8],有些使用EM算法[17]、半定规划[18]和贝叶斯方法[19]来推断缺失值。随后,[20]提出了一种新的用于分类数据输入的软计算架构。该方法采用基于模型的概率神经网络(PNN)对缺失的分类数据进行输入,与均值、k -近邻、热卡法(Hot-Deck, HD)和决策树技术相比,产生了更有效的结果。[21]利用遗传算法对知识和技能领域的缺失数据进行归因。该算法将贝叶斯信息准则和赤池信息准则作为适应度函数,分别应用于经典的一、二、三参数项目反应理论模型。并将该算法与多变量链方程(MICE)算法的结果进行了比较。[22]使用结合高斯过程回归的在线贝叶斯框架进行表面温度分析。由于贝叶斯推理框架的强大功能,高斯过程(GP)是一种流行的非参数模型。然而,对于像全球地表温度这样的大规模数据集,GP的性能往往会下降。针对大规模GP回归,提出了一种新的在线贝叶斯滤波框架。[13]提出了一种整合现有代谢网络、甚至未知化合物的内聚关系以及特征强度之间的线性和非线性关联的填充算法,构建特征级网络。该算法基于网络邻域特征,采用支持向量回归对缺失值进行补全。然而,这类方法还有一个关键问题:数据的输入可能会带来新的误差[23],从而降低分类的准确性。同时,数据的输入会占用大量的时间和空间,我们不能在数据输入之前就开始分析。那么,一个自然的问题来了:我们能否设计一个分类算法,可以直接运行在不完整的数据上?
挑战 为了便于讨论,本文主要讨论二值分类。为了解决这个问题,我们尝试对不完整数据集进行分类,既不忽略缺失值的样本,也不直接对这些不完整数据进行输入。挑战在于如何用为完整数据开发的方法对不完整数据进行分类。如[24]所述,我们可以从不完整的数据中生成完整的视图。然后这些不同的完整视图可以用来训练基本分类器。本文提出了一种选择完整视图的方法“视图选择”(View Selection, VS)。在这些完整的视图上训练基分类器后,对基分类器进行线性加权投票,得到最终的分类器。然而,这种方法仍然有一定的局限性。首先,由于完整视图的数量与属性数量呈指数关系,并且大多数信息是冗余的,因此使用所有完整视图进行分类器训练既不实际也不有效。其次,基于不同观点训练的分类器,不考虑它们对最终分类的不同影响,简单地用线性函数组合。为了清楚地说明这两个限制,让我们考虑下面的例子:
在这里插入图片描述

例1 考虑表1的数据集 D ( s 1 , s 2 , … , s 6 , L a b e l ) D(s_1,s_2,…,s_6,Label) D(s1,s2s6,Label)。对于每个样本 r i r_i ri,如果属性 s j s_j sj的值可用,则 D [ r i ] [ s j ] = ′ y ′ D[r_i][s_j]='y' D[ri][sj]=y。否则 D [ r i ] [ s j ] = ′ n ′ D[r_i][s_j]='n' D[ri][sj]=n。每行的最后一列 r [ L a b e l ] r[Label] r[Label]表示r所属的类(0或1)。显然,我们可以通过选择 s 1 s_1 s1- s 6 s_6 s6的不同子集(称为特征集)并去除其特征集中缺失值的样本,从D中获得各种完整视图。例如,表2-5分别是基于特性集 c 0 c_0 c0- c 3 c_3 c3生成的四个完整的D视图。其中,D的完整视图数为26-1=63。假设D有10个属性,则完整视图的数量为210-1=1023。显然,在实践中生成所有完整视图的代价太大。因此,我们的第一个挑战是如何找到完整视图的适当子集来生成基本分类器。
在这里插入图片描述

考虑一个未分类样本r,我们可以使用一个基分类器对r进行分类,即基于视图 V 0 V_0 V0训练的分类器。然而,由于忽略了来自其他视图的信息,这不是一个合适的选择。因此,为了获得更准确的结果,我们将所有基本分类器组合成一个全局分类器。由于视野的不平衡,这种组合很棘手。如果我们基于一个线性函数组合这些基本分类器,其中每个分类器具有相同的权重,那么结果可能会受到小规模视图的影响。例如,我们在表3中选择 V 1 V_1 V1 V 2 V_2 V2 V 3 V_3 V3来训练基分类器,从 V 2 V_2 V2得到的结果 T 1 T_1 T1与从 V 1 V_1 V1 V 3 V_3 V3得到的结果 T 2 T_2 T2不同。 T 1 T_1 T1来自有更多样本的 V 2 V_2 V2, T 2 T_2 T2来自有更多分类器的 V 1 V_1 V1 V 3 V_3 V3。这两种选择都是合理的,但是我们只能选择其中一种作为我们的输出。因此,我们的第二个挑战是如何提出一种合适的确定方法。
要解决这个问题,最简单的方法就是为每个视图及其相应的分类器生成一个权重。然而,对于指数增长的视图,它是费时且不切实际的。因此,我们的目标是使用更少的视图。由于特征集可以唯一地识别视图,因此在本文中,我们使用一种算法来区分和去除冗余特征。然后我们根据剩下的特征生成视图。之后,注意到每个视图只包含原始数据的一部分信息,这导致这些单一分类器的结果很差,我们将它们组装为决策树。第2节详细讨论了树形结构。树决定视图的顺序。在生成树的时候,精度越高的视图在树的位置越高,对样本的影响也越大。我们的工作优势如下:

  • 我们直接对原始数据进行分类。与其他方法相比,该方法对结果的影响较小。
  • 在我们的方法中,通过使用包含原始数据部分完整信息的视图,我们充分利用了不完整数据集。
  • 在分类过程中,为了避免访问所有由视图训练的分类器,我们将子分类器组织成树形结构。根据每个分类器的重要性对分类器进行组合,从而节省了时间成本,提高了准确率。

本文的组织结构如下。我们在第2节中展示了我们的方法和树形结构的草图。在第3节中,我们将展示如何在每个节点上生成视图。我们在第4节中给出了实验结果和分析。最后,在第五节中,我们对本文的工作进行了总结。

2. 树形视图组织

我们的目标是在不完整数据集上生成一个准确的分类器。由于基本的分类方法只能在完整的数据上运行,在最开始,我们必须遍历数据集以获得完整的视图。面对大数据,浏览量可能非常大。为了更充分地利用视图,我们构建了一个树形结构来存储视图及其相应的分类器。在树中,由于不同节点对分类结果的影响不同,因此可以对这些节点上的视图和分类器进行适当的组合。我们将使用具有大量训练样本的分类器来进行粗略分类,并使用具有特定训练样本的分类器来修剪结果。然后,我们根据这些视图分别训练基分类器,并使用树将它们组合在一起进行分类。
在这里插入图片描述

我们的方法框架如图1所示。首先,利用完整视图生成决策树。以表1中显示的不完整数据为例。如果我们首先选择视图1,如图2所示,树的根将是视图1。由于视图1已经完成,我们可以用这些样本训练一个基本的分类器。然后根据分类器将数据集划分为不同的部分,每个部分都是一个新的不完整数据集。对于每个部分,我们选择另一个视图作为其子树的根,在该视图上训练分类器,并将不完整数据再次划分为不同的部分。这是一个递归过程。当视图太小或分类器足够精确时,我们获得树的叶节点。
在这里插入图片描述

直观地说,一旦我们找到原始不完整数据的正确完整视图,就可以训练基本分类器。利用这样的分类器,我们做了一个粗略的预测。然后将数据集分成三部分,正标记,负标记和未知,这意味着样本在视图中是不完整的。为了利用更多的视图并提高准确性,我们递归地找到一个完整的视图作为它的子视图,直到一些子视图的样本很少,或者所有的样本共享相同的标签。
例2 考虑数据集 D ( s 1 , s 2 , … , s 6 , L a b e l ) D(s_1,s_2,…,s_6,Label) D(s1,s2s6,Label)。首先,对原始的不完整数据生成根节点。在图2中,它是顶部的椭圆。然后选择包含 { s 1 , s 3 , s 4 , s 6 } \{s_1,s_3,s_4,s_6\} {s1,s3,s4,s6}的特征集及其对应的完整视图,如表3所示。因为它是一个完整的数据集,我们可以训练一个分类器。在图2中,它是标签为“classifier with View 1”的矩形。根据分类器,数据集D可以被分割。根据预测结果,我们将原始的不完整数据集分成三部分。它们是根的子树,我们可以递归地生成子树。
然而,在这个分割过程中,我们只能保证每个节点上的样本数量减少。在实践中,如果一个节点在多次分割后仍然有大量的样本,那么树的深度可能会变得不可接受,树对于训练来说是过拟合的。
例3 再次考虑表1中的数据集 D ( s 1 , s 2 , … , s 6 , L a b e l ) D(s_1,s_2,…,s_6,Label) D(s1,s2s6,Label)。我们首先选择特征集 C 1 = { s 1 , s 3 , s 4 , s 6 } C_1=\{s_1,s_3,s_4,s_6\} C1={s1,s3,s4,s6},完整视图 V 1 V_1 V1包含数据集 D 1 = { r 1 , r 2 , r 3 } D_1=\{r_1,r_2,r_3\} D1={r1,r2,r3}。在 D 1 D_1 D1上训练的基本分类器为 T 1 T_1 T1。然后我们把D分成三个部分作为它的 T 1 T_1 T1的子树。在这些子节点对应的节点中,如果我们再次选择特征集 C 1 C_1 C1,则新的基本分类器的训练数据将是 D 1 D_1 D1的一个子集。由于我们已经利用D_1中的信息训练了一个分类器 T 1 T_1 T1,所以新的分类器会导致过拟合,使更多的层次无效。
为了解决这个问题,在选择树中节点视图的特征集时,我们不选择它们的祖先使用的特征。因此,树的最大深度为#feature。同时,对于预修剪,我们设置了纯度阈值。如果一个节点的纯度低于阈值,我们就停止分裂。集合D的纯度用信息熵来定义,信息熵表示无序程度或不确定性。D中的类别越多,信息熵越高。
E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k l o g p k Ent(D)=-\sum_{k=1}^{|y|} {p_k logp_k} Ent(D)=k=1ypklogpk
假设D有y个标签:{1,2,…|y|}, p k p_k pk为k的比值。当我们进行二值分类时,
E n t ( D ) = − ( p 0 l o g p 0 + p 1 l o g p 1 ) Ent(D)=-(p_0 logp_0+p_1 logp_1) Ent(D)=(p0logp0+p1logp1)。当p=0时,令 p l o g p = 0 plogp=0 plogp=0
在这里插入图片描述

然后我们可以生成决策树作为伪代码1。我们用一个例子来解释它。
例4 考虑数据集 D ( s 1 , s 2 , … , s 6 , L a b e l ) D(s_1,s_2,…,s_6,Label) D(s1,s2s6,Label)。在第1行中,我们生成一个根节点。然后在第6行,我们首先选择特征集 C 1 = { s 1 , s 3 , s 4 , s 6 } C_1=\{s_1,s_3,s_4,s_6\} C1={s1,s3,s4,s6},完整的View V 1 V_1 V1包含数据集 D 1 = { r 1 , r 2 , r 3 } D_1=\{r_1,r_2,r_3\} D1={r1,r2,r3}。在第7行,在D_1上训练的基本分类器是T_1。在下面的for循环中,我们使用T_1来预测D中样本的标签,并将其分成三部分。这些不完整数据集用 D 2 、 D 3 D_2、D_3 D2D3 D 4 D_4 D4表示。第11行我们再次调用方法本身。在第2行中,如果数据集太小或足够纯,我们将其设置为树中的叶子节点。纯度由 E n t ( D ) Ent(D) Ent(D)定义。否则,在第11行中,我们将递归地生成它的子树。
时间复杂度分析。假设原始的不完整数据集有n行m列。由于在一个节点上使用的一个特征永远不会在它的子树上使用,因此树的层次小于m。假设一个基本分类器的训练和预测的时间复杂度为A,视图选择算法的时间复杂度为B。考虑到在树的一个层次上,将有最多n个样本。因此,伪代码1的时间复杂度为O(mn(A+B))。
对于多类分类的情况,唯一的区别是为每个类别生成更多的子代。如图2所示,一个节点的子节点数将大于3个。

3. 视图选择

为了生成基本分类器,我们需要完整的视图。然而,这些视图的数量会随着特征的数量呈指数增长。在实践中,观察到不同的特征集采用不同的视图,我们可以将视图选择问题转化为特征选择问题。
正如在[25]中所讨论的,如果一个特征与类概念相关,但对任何其他相关特征都不是冗余的,那么它就是好的。在本文中,我们使用互信息(Mutual Information),也称为信息增益(Information Gain)[26]来衡量特征与标签之间或两个特征之间的相关性:
I ( X ; Y ) = ∑ x ∈ X ∑ y ∈ Y p ( x , y ) l o g p ( x , y ) p ( x ) p ( y ) I(X;Y)=\sum_{x∈X}\sum_{y∈Y}{p(x,y)log\frac{p(x,y)}{p(x)p(y)}} I(X;Y)=xXyYp(x,y)logp(x)p(y)p(x,y)
其中p(x)表示x的概率,p(x,y)表示x和y的联合概率。如果观察到特征和标签之间的互信息值很高,这意味着该特征有助于预测标签,我们将该特征视为“好”特征。
然而,信息增益偏向于具有更多值的特征。我们选择对称不确定性[27]对其进行归一化:
S U ( X , Y ) = 2 [ I ( X ; Y ) H ( X ) + H ( Y ) ] SU(X,Y)=2[\frac{I(X;Y)}{H(X)+H(Y)}] SU(X,Y)=2[H(X)+H(Y)I(X;Y)]
式中 H ( X ) = − ∑ x ∈ X p ( x ) l o g p ( x ) H(X)=-\sum_{x∈X}{p(x)logp(x)} H(X)=xXp(x)logp(x) X X X的信息熵。
一方面,我们可以通过计算 S U ( F i , L a b e l ) SU(F_i,Label) SU(Fi,Label)来判断F_i是否“好”。另一方面,我们也可以比较 S U ( F i , F j ) SU(F_i,F_j) SU(Fi,Fj) S U ( F i , L a b e l ) SU(F_i,Label) SU(Fi,Label)来判断 F i F_i Fi是否“冗余”。则与Feature selection algorithm Fast Correlation Based Filter (FCBF)[25]兼容的视图选择算法为伪代码2。
在这里插入图片描述

例5 考虑数据集 D ( s 1 , s 2 , … , s 6 , L a b e l ) D(s_1,s_2,…,s_6,Label) D(s1,s2s6,Label)。在该算法中,首先,在第2行到第7行,我们计算特征 F i F_i Fi和Label之间的所有 S U i {SU}_i SUi。我们得到 l i s t = [ ( s 1 , v 1 ) , ( s 2 , v 2 ) , ( s 3 , v 3 ) , ( s 4 , v 4 ) ] list=[(s_1,v_1),(s_2,v_2),(s_3,v_3),(s_4,v_4)] list=[(s1,v1)(s2,v2)(s3,v3)(s4,v4)]。然后,在第8行,我们对列表 l i s t = [ ( s 3 , v 3 ) , ( s 1 , v 1 ) , ( s 4 , v 4 ) , ( s 2 , v 2 ) ] list=[(s_3,v_3),(s_1,v_1),(s_4,v_4),(s_2,v_2)] list=[(s3,v3)(s1,v1)(s4,v4)(s2,v2)]进行排序。在第10行中,我们选择SU最高的特性,并将其视为一个好特性,即 s 3 s_3 s3。由于在第12行到第16行中我们有一个很好的特性,因此我们使用它来删除一些冗余特性,这些特性的 S U j {SU}_j SUj小于两个特性之间的SU。例如,如果 v 1 < = S U ( s 3 , s 1 ) v_1<=SU(s_3,s_1) v1<=SU(s3,s1),则从列表中删除 s 1 s_1 s1。之后,如果列表不是空的,我们返回到第12行并选择第二个特性。由于 s 1 s_1 s1已经被移除,我们选择下一个 s 4 s_4 s4作为第二个特征,然后再次移除一些特征。
时间复杂度分析。假设原始的不完整数据集有n行m列。显然,计算一个SU的代价是O(n)。因此,计算和排序它们的代价是O(mnlog(m))。在while循环中,我们计算SU的次数小于m次。总而言之,伪代码2的时间复杂度为O(mnlog(m))。

4. 实验

在本节中,我们对来自UCI的真实数据进行了广泛的实验来验证我们的方法。我们选择了四个适合分类任务的数据集。Iris[28]、Ecoli[29]、Horse Colic[30]、Ionosphere[31]、Breast Cancer[32]、Glass[33]等数据,基本信息见表6。对于没有缺失值的数据集,我们随机选择30%的值并用’?’来生成具有所需缺失率的数据。我们随机选择70%的数据样本作为训练集,另外30%作为测试集。并做100次实验得到平均结果。本文的基分类器使用的方法是k近邻分类(KNN)[34]。这是机器学习中一种简单而常见的分类方法。我们将KNN的默认参数设置为k = 3。决策树的默认参数是δ = 0.32,n = 10。在我们的实验中,这两个参数在大多数情况下都能得到最好的结果。
在这里插入图片描述

4.1 比较

Baselines 为了进行比较,我们实现了其他四种算法:MGEI、MI、KNNI和ELMI,如下所示。所有算法都是用Python实现的,运行在64位Ubuntu桌面上,配备Intel® Celeron® 2957U CPU, 1.40 GHz和4.00 GB RAM。

  • MGEI: MGEI方法[4]是一种可以直接对不完整数据进行预测的最先进的算法。将不完整数据集投影成一组数据子集,并将这些数据子集作为训练集。然后,在bagging算法的基础上,利用每个数据子集生成一组分类器,然后采用多粒集成分类器的方法对每个数据子集进行最终预测。这种方法和我们的方法有两个主要区别。首先,该方法该方法基于精度权重线性集成基分类器,我们将基分类器生成为树。其次,在对新样本进行分类时,该方法根据样本缺失的属性选择基分类器,我们根据树选择基分类器。
  • MI: Mean imputation(MI)[34]采用每个属性的平均值来估算缺失值。然后分类器可以在完整的数据上进行训练。对于未分类样本,如果其某些属性缺失,则使用训练集上的平均值来填补空白。而之前训练好的分类器可以用来进行分类。
  • KNNI: k -最近邻imputation(KNNI)[34]为不完整样本找到最近的邻居,并使用所选邻居的平均值、中位数或众数对数据进行推算。接下来的步骤与上面的MI相同。
  • CCMVI: CCMVI[35]是最先进的算法。它基于测量每个类的类中心,然后使用它与其他观测数据之间的距离来定义阈值,用于后期的插值。

精度指标 对于评价指标,我们选取精密度 ( P ) (P) (P)和召回率 ( R ) (R) (R)如下[10]:
P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP
R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP
其中TP(真阳性)表示预测为阳性的阳性样本的数量,FP(假阳性)表示预测为阳性的阴性样本的数量,FN(假阴性)表示预测为阴性的阳性样本的数量。

不同数据集的比较 图3~5为缺失值数据集的对比结果。图5显示了在数据集Horse Colic上的结果。这是一个不完整的数据集,所以我们只是简单地运行这些分类方法。我们方法的优点是显而易见的。VDT在精度和召回率上都优于其他方法。其他数据集的对比结果如图3、图4所示。可以看出,虽然VDT能够达到与最佳结果相当的高精度,但我们方法的优势并不明显。所以我们改变这两个完整数据集的缺失率,做更多的实验。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
缺失率的影响 使用Iris数据集和Ecoli数据集来观察缺失率的影响。这两个数据集相对较小,对缺失率的变化比较敏感。我们从这两个完全数据集中随机抽取10%到50%的值,得到合成的不完全训练集和测试集。查准率和查全率如表7至表10所示。TP(真阳性)、FP(假阳性)、FN(假阴性)和TN(真阴性)见表11 - 18。缺失率越高,查准率和查全率越低。但是我们可以看到,我们的方法和MGEI都是直接对不完整的数据进行预测的,在缺失率更高的情况下更有优势,因为这两种方法都是直接对数据集进行分类。此外,MI具有较高的精度,但均值容易受到噪声点的影响,如图所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

噪音影响的比较 可以看出,对于缺失率较高的数据集,Mean imputation(MI)和我们的方法(VDT)都具有优势。为了证明我们的方法比MI更鲁棒,我们在训练数据上人为地添加了噪声。由于数据已经归一化,我们使用噪声数据与数据均值点之间的距离来度量噪声。图9和图10显示了噪声的影响。随着噪声的增大,由于噪声对均值的影响,MI的精度越来越低。
分析 由于MI考虑的是均值,VDT考虑的是视图,所以当噪声直接影响均值且噪声只影响少数视图时,可以看出我们的方法更加鲁棒。
在这里插入图片描述
在这里插入图片描述
运行时间比较 通过随机选择原始乳腺癌数据集的一部分,我们展示了我们的方法在不同尺度数据上的性能。我们改变数据大小从100到700。图6显示KNNI和VDT的运行时间。可以观察到,随着数据越来越多,我们的方法的运行时间将几乎停止增长,因为树的叶子已经完全发育。最后,我们的方法比KNNI算法耗时更短。图7和图8显示,我们的方法绝对比考虑所有基分类器的MGEI快。
分析 由于MGEI考虑了所有选择的视图,而VDT将这些视图组装成一棵决策树,并从中选择几个视图进行分类,因此VDT的过程会更快。在大数据上是可行的。
在这里插入图片描述
在这里插入图片描述

因此,当缺失率小于30%时,不同的方法可以在不同的数据集上击败其他方法。随着缺失率的升高,MI、MGEI和VDT具有优势。然而,后来的实验表明,VDT比MI更鲁棒,比MGEI更快。综上所述,我们的方法对缺失率较高的数据集具有鲁棒性和适用性。

4.2 参数的影响

δ的影响 图11为数据集Ionosphere在n=10时不同δ的精度。这个数据集的结果是典型的。我们随机删除30%的值,使其成为一个不完整的数据集。我们可以观察到,精度和召回率都随着δ的减小而提高。而当δ≈0.62时,则发生直线降落。我们可以推测,大多数关键节点对约0.62的δ阈值敏感。因此,δ小于0.62影响不大。
在这里插入图片描述

n的影响 对于参数n,图12和图13分别为δ = 0.32和δ = 0.50时不同n时的精度。在这两种情况下,精度对δ不敏感。原因是原始数据集太小,对原始数据进行一次或两次分割后,特征已经用完了。因此,不同的n对这些叶节点没有影响。
在这里插入图片描述

5. 结论

挖掘和分析包含缺失属性值的不完整数据集可能会影响决策结果。缺失值法被广泛用于处理不完全数据集问题。本文提出了一种基于视图的决策树(View-based Decision Tree, VDT),用于处理不完全数据集的二值分类问题。我们在树结构的节点上设置基本分类器。未分类的样本将根据预测结果分成不同的孩子。然后子节点上的另一个基分类器递归分类,直到样本位于VDT的叶节点上。叶节点的分类结果将作为VDT的一般结果输出。
在对比实验中,我们的方法与一些经典方法和一些最新的方法进行了比较。我们取不同尺度的数据集,随机去除一些数据,得到不同的缺失率。此外,我们还加入了一些噪声来测试不同方法的鲁棒性。结果表明,该方法具有较强的鲁棒性,尤其在缺失率较高的情况下优于其他方法。
未来有几个问题可以考虑。首先,在视图选择过程中,只考虑原始矩阵的列。在未来,我们可以同时关注列和行,更精确地选择训练样本集,以获得更好的性能,特别是在小规模数据上。其次,训练每个基分类器的不变方法需要更多的过拟合。在未来,我们可以开发在不同节点上选择不同训练方式的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值