在最近的离散化研究中,我们使用了相同的28个数据集[11]. 这些数据集来自KEEL[21]和UCI[22]机器学习知识库代表了各种复杂度、类数、属性数、实例数和不平衡率(多数类与少数类的大小之比)。有关数据集的详细信息可以在线找到脚注1。我们下载了这些数据集的离散化版本,用于他们考虑的离散化算法。这包括等宽(EW)和等频(EF)的无监督算法[2]以及信息熵最大化(IEM)的监督算法[三]类属性相互依赖最大化(CAIM)[5]、阿梅瓦[6],修改Chi2[7]、基于超立方体分区的离散化(HDD)[8],类别属性应急系数(CACC)[9],基于区间距离的离散化方法(IDD)[10]和ur-CAIM[11]. 这些数据集都包含100个不同的折叠,其中离散化的间隔由文件的前90%中的训练部分确定,然后将这些间隔应用于用于测试的剩余10%的数据。因此,28个数据集包含10个独立构建的训练和测试组件,以有效地为总共280个训练和测试对创建10倍交叉验证。
这项工作的总主题是,只要这些功能有一些附加值,添加功能就不会有本质上的危害。相反,我们声称,如果删除原始连续值而丢失重要信息,则传统的离散化使用(连续值被离散值取代)可能是有害的。我们预期会发现,使用D-MIAT丰富的数据集比没有D-MIAT的数据集提供更准确的结果,而且更普遍地说,删除原始特征而只使用离散化特征的效果不如在一个扩展集中使用特征组合的效果好。我们检查了几个研究问题来研究这些问题:
-
1
当将D-MIAT生成的特征添加到原始数据中时,这些特征是否会提高预测性能?
-
2
删除连续值的离散化的经典用法是否有助于提高性能?
-
三。
使用离散化特征是否有利此外到原来的?
-
4
D-MIAT生成的特征是否应与其他离散化算法结合使用?
为了检查这些问题,我们接着创建了五组不同的数据。第一组数据由28个基本数据集组成,未对其训练和测试组件进行任何修改(A类)并使用了之前研究的数据[11]. 第二组数据是除了离散化切割之外的原始数据(D类)来自D-MIAT。第三组数据由28个具有上述10种算法的数据集的离散版本组成(D类)也是根据之前的研究生成的[11]. 第四组数据附加了原始数据集(A类)使用每个离散化数据集(D类). 最后,我们创建了第五组数据,方法是将原始数据附加到D-MIAT和其他几个性能最佳的离散化算法创建的特征中。为了便于将来复制这些实验,我们制作了D-MIAT的Matlab版本,网址为:http://homedir.jct.ac.il/~rosenfa/D-MIAT.zip脚注2。我们在带有Intel i7处理器和32 GB内存的个人计算机上运行了D-MIAT。用D-MIAT处理全部280个文件总共花费了大约15分钟。
然后,我们测量了7种不同分类算法的预测准确性:朴素贝叶斯、使用RBF核的SVM、使用k个=3、AdaBoost、C4.5、Random Forest和Logistic回归。前6个算法在Weka实现[23]使用之前工作中使用的相同参数[11]. 添加了最后一个算法,因为它是一个广为接受的确定性分类算法,而在之前的研究中没有出现。默认参数在Weka的Simple Logistic算法实现中使用。
如下所示,我们发现离散化的经典用法通常不能提高这些数据集的平均性能。相反,通过在原始数据之外使用D-MIAT或在原始数据以外使用规范算法的离散化特征,在原始特征之外使用离散化特征通常可以获得更好的性能。最佳性能通常是由原始数据的组合数据集实现的,该数据集富含D-MIAT和研究问题#4提出的其他离散化算法。因此,我们证明了最有效的流水线是使用D-MIAT和离散化特征来扩展给定的特征集。
3.1D-MIAT结果
D-MIAT算法的目标是补充而不是取代原始数据。是否生成其他功能的决定取决于支持和conf公司算法1中的参数,并将其应用于每个数字属性A类
j个
在数据集中。因此,D-MIAT可以根据算法1的第7行和第12行为每个属性生成两个特征。在我们的实验中,我们定义了支持等于培训数据的10%。三个置信值,conf公司,已检查。第一个值是conf公司=熵(0),这意味着切割对其中一个目标类产生了完全决定性的指示,因此根据上述第一种置信度,熵为零。我们还考虑了两种类型的升力置信度:conf公司=提升(1.5)和conf公司=提升(2.0)。根据这些置信水平,我们检查了根据升力值测量的某个目标类的降幅是否产生了更强烈的指示。有可能满足这两个升力阈值。例如,假设一次切割产生了3的提升,那么两个置信阈值都会认为这次切割很重要,并相应地生成一个新特征。我们还考虑了削减可以累加的可能性,因此可以根据这三个不同阈值的组合添加重叠削减。相反,如果未满足所有使用的阈值,则不会为给定属性创建切割。
为了说明这一点,表2显示28个数据集中每个数据集中连续属性的数量,以及每个数据集中生成的属性D-MIAT的总数,并结合以下三个阈值conf公司我们考虑过。由于D-MIAT仅基于训练集中的10个不同迭代生成其切割,因此D-MIAT生成的特征数量可能会在28个数据集中的这些迭代中发生变化。例如,请注意,前两个数据集鲍鱼和心律失常没有D-MIAT在任何迭代中生成的特征conf公司和支持这表明,与之前研究的所有10种规范离散化算法相比,D-MIAT可以具有更严格的生成切割的条件,这些算法在所有这些数据集中生成特征。还要注意,D-MIAT在玻璃数据集中平均生成了12.9个特征。根据训练数据,D-MIAT生成了12到15个特征,导致平均值只有一小部分。与这里的情况一样,大多数情况下,D-MIAT生成的离散化特征的数量小于原始特征的数量。然而,在仅包含四个连续属性的虹膜数据集中发现了一个显著的例子,但平均而言,D-MIAT生成了20个特征。在这种情况下,为每个A类
j个
根据以下各项conf公司算法1中的条件。
表2 28个数据集中每个数据集中由三个D-MIAT阈值生成的新特征总数
然后,我们检查D-MIAT生成的特征是否提高了预测性能。表三显示了D-MIAT生成切割的15个文件中每个文件的基线数据的平均精度,如表所示2请注意,每个D-MIAT支持阈值(第2行的0熵、第3行的1.5升力和第4行的2升力)通常提高了所有分类算法的预测性能。这表明,在该阈值内选择的值并不十分敏感,因为所有选择的值通常都会提高预测精度。请注意,表中突出显示了所有性能提升。一个显著的例外是AdaBoost算法,其中没有发现性能提高(也没有任何降低)。此外,我们还注意到,某些算法(如朴素贝叶斯、SVM和逻辑回归)始终受益,而其他算法则没有。我们还发现所有三个D-MIAT阈值的切割所产生的特征组合,其结果见表的第五行三,产生了最佳性能。由于D-MIAT生成的每个切割都很重要,因此除了原始数据之外,添加所有切割通常是有利的。在本文的其余部分,我们将使用D-MIAT的结果,使用所有切割,因为我们发现这产生了最高的性能。因此,我们总体上支持了本文的论点,即添加特征不一定会有问题,除非这些属性中缺乏附加值,即使离散化切割中的阈值不一定是最优的。
表3比较无D-MIAT数据集和D-MIAT有4个变量的数据集的精度,参数值为零熵(MIAT 0)、升力为1.5(MIAT 1.5)、升程为2(MIAT 2)和所有三个离散值(MIAT 01.5 2)
3.2除了使用原始数据外,还使用离散化
然后我们检查了研究问题2和3。我们假设研究问题#2也会被发现是正确的,并且像之前发现的那样,单独使用离散化特征通常是有用的[三,12–14]. 令我们惊讶的是,在我们考虑的28个数据集中,我们并没有发现这种情况经常发生。表4,显示了此实验的平均精度结果。这里的基准是没有离散化的平均性能(A类)与之相比,我们比较了7种分类算法中的10种典型离散化算法。再一次,每个彩色单元格都代表了给定离散化算法相对于基线的改进,并注意到表中大部分内容缺乏颜色2虽然一些算法,尤其是Naive Bayes和SVM,与非离散化数据相比通常表现出了较大的改进,但大多数分类算法(K-nn、AdaBoost、C4.5、Random Forest和Logistic Regression)通常在这些数据集中的离散化算法中没有表现出任何改进。此表的最后一列说明了这一点,它表明对于大多数离散化算法减少平均来说,通过专门使用离散化特征可以获得较高的精确度。因此,我们确实发现,对于我们考虑的数据集中的大多数分类算法,仅使用离散化是较少的比使用原始功能更有效。
表4比较原始基线数据中七种不同分类算法的准确性结果(A类)以及离散化的数据(D类)由Ameva、CACC、CAIM、Chi2、EF、EW、HDD、IDD、IEM和ur-CAIM算法组成
对于本文的第三个研究问题,我们发现了更多的实证支持,即结合原始特征使用离散化比单独使用原始集或离散化生成的集更有效。实验结果见表5其中,我们比较了原始数据集的结果以及原始数据与离散化算法的特征的组合。我们再次发现,朴素贝叶斯和SVM算法从这个组合数据集中受益最多。当考虑这两种学习算法时,现在通过合并所有离散化算法来注意到改进。我们注意到表中的结果有了很大改进5与表中的内容相比4在AdaBoost和Logistical Regression算法中。与表中的结果相比4,所有算法的平均性能(在表的最后一列中找到)现在都显示出了改进。还要注意,几乎毫无例外,组合特征的性能优于相应的离散化集。例如,使用C4.5的Ameva算法的平均精度为70.46,但结合原始数据,Ameva的平均精度跳至78.39。即使没有注意到改进,我们也发现,由于维度灾难,添加这些功能通常不会对性能产生负面影响。
表5比较原始数据中七种不同分类算法的准确度结果(A类)并将离散化数据附加到原始数据(A类+D类)
尽管对研究问题#3的普遍支持是,使用离散化来增加原始数据比单独使用离散化数据要好,但我们仍然注意到一些算法,尤其是K-nn、C4.5和Random Forest学习算法,通常没有从任何形式的离散化中受益。我们在第节中进一步探讨了这些结果差异,以及离散化对所有算法的影响3.4.
3.3使用D-MIAT和其他离散化算法作为附加功能
鉴于发现从D-MIAT和规范离散化算法中添加特征有助于提高性能,我们假设这些特征的组合将有效地实现研究问题#4中的最佳性能。为了评估这个问题,我们将D-MIAT特性与这些数据集中性能最佳的离散化算法(CAIM、IEM和urCAIM)相结合。然后,我们在15个数据集中考虑了这种组合的性能,其中D-MIAT生成了一些特征,并且平均在所有28个数据集内。实验结果见表6.
表6当考虑到D-MIAT添加了特征的15个数据集时,将D-MIAT与离散化特征相结合会产生最高的性能,平均而言,在所有28个数据集中
从15个数据集的结果中可以看出(表的顶部6),离散化算法的组合几乎总是优于原始数据,Naive Bayes、SVM、K-nn、AdaBoost、C4.5和logistic回归算法中的所有三种组合的预测精度都有所提高。唯一的例外似乎是Random Forest算法,该算法没有显著的性能改进。为了进行比较,我们还在表的底部列出了所有28个数据集的改进6,其中包括13个数据集,其中没有D-MIAT生成的功能。正如预期的那样,D-MIAT的组合没有那么重要,再次证明了添加D-MIAT功能的好处。总的来说,在我们考虑的所有算法中,我们发现这种组合是最成功的,预测精度通常提高了1%以上。因此,我们发现论文#4通常是正确的,建议将D-MIAT与现有离散化算法结合使用,以丰富要考虑的特征集。
3.4讨论和未来工作
我们感到有些惊讶的是,单独使用离散化并不像以前使用随机森林和C4.5等分类算法时那样成功[三,12–14]. 我们认为,正在分析的数据集的差异可能是造成这些差距的原因。因此,我们认为,考虑到机器学习算法和用于输入的数据集,一个重要的开放问题是预测离散化何时会成功。相比之下,我们发现D-MIAT产生了更稳定的结果,因为它通常只提高了性能,而其他离散化算法没有做到这一点,特别是对于这两种学习算法。我们现在正在探索如何使其他离散化算法同样更加稳定。
我们注意到,本文中描述的除原始数据外使用D-MIAT和离散化特征的流水线对于无离散化的算法最为有效,即Naive Bayes、SVM和Logistic Regression分类算法。相反,对于具有离散化组件的方法,尤其是C4.5、Random Forests和AdaBoost算法,这种方法的效果较差。之前已经注意到,C4.5有一个局部离散化组件(重新应用于决策树的每个内部节点),因此添加全局离散化特征可能会获得较少的收益,这些特征在所有决策树节点上被分割为相同的间隔[三]. 类似地,AdaBoost中用作弱分类器的决策树桩基本上执行全局离散化,因此可能不太可能从D-MIAT添加的全局离散化特征中获益,这从表中可以看出三如表所示6Random Forest算法从本文描述的流水线中获益最少,也可能是因为它的离散化组件。我们希望进一步研究具有固有离散化组件的算法何时以及为什么仍然受益于额外的离散化。此外,尽管K-nn算法没有离散化组件,但与其他算法相比,该算法从所提出的流水线中获益较少。这似乎是合理的,因为众所周知,该算法对维数诅咒特别敏感[24,25]因此,这种特定的算法没有从所提出的方法中受益,而其他分类算法对它的敏感度较低。我们计划在未来的研究中研究这个复杂的问题。
我们认为,未来的工作还应遵循几个其他方向。首先,本研究没有考虑从神经网络学习和深度学习,因为这些算法以前没有考虑过[11]. 这是因为本研究中几个数据集的规模相对较小,因此不可能使用这种方法获得准确的深度学习模型。我们目前正在考虑其他数据集,尤其是那些具有大量训练数据的数据集,以便我们更好地理解如何通过离散化特征来增强深度学习。同样,我们认为一些生成的离散化特征之间可能存在互连。多元特征选择和/或深度学习可能被用来帮助强调这些相互联系并删除冗余特征。其次,我们建议使用元认知,即学习的过程[26]让我们了解应该向给定数据集添加哪些离散化特征。我们也在研究如何为conf公司和支持D-MIAT内的阈值。虽然本文证明了多个D-MIAT阈值可以组合使用,并且每个阈值通常都能提高性能,但我们并不声称本研究中使用的阈值代表了所有数据集的最佳值或一组值。一个潜在的解决方案是开发元认知机制,用于学习给定数据集的这些阈值。类似地,正如在神经网络中普遍建议的那样,一种形式的元认知可以添加到机器学习算法中[27]帮助实现这一目标。