您的位置:首页 > 理论基础 > 计算机网络

读书心得-Do we Need Hundreds of Classifiers to Solve Real World Classification Problems

2017-03-10 16:41 477 查看

Abstract

179个分类器

17个类别(判别分析,贝叶斯,神经网络,支持向量机,决策树,基于规则的分类器,boosting,bagging,stacking,随机森林和其他集成方法,广义线性模型,近邻算法,偏最小二乘(PLS)和主成分回归,逻辑和多项式回归,多元自适应回归样条函数和其他方法)。

121个数据集(the whole UCI data base)

性能最好的是:

1. RF——(R中通过caret存取)达到94.1% 的最大精度克了84.3%的数据集中的90%。

2. SVM with 高斯核——(C using LibSVM)达到92.3%的最大精度。

3. 神经网络

4. boosting ensembles

Introduction

不同的分类器来自于不同的数学以及计算机的研究背景

classifier families 分类器名称

统计学 线性判别分析,广义线性模型

人工智能和数据挖掘 基于规则的分类器,决策树

联结主义方法 神经网络

不同的分类器在不同的数据集上有不同的表现,本文主要做的工作有以下四个:

选出分类效果最好的分类器

将每个分类器按照他的准确度进行排序

确定每一个分类器的可以达到的最好的分类精度

评估在不同的数据集下的分类器的性能的变化

在使用UCI测试数据集进行测试的过程中容易出现一些有趣的错误,下面综合这些错误并讨论如何避免:

有时使用的测试数据集会使得实验结果不准确,因此本文所使用的数据集都是来自于UCI分类库,这样可以避免一些小数据集得到不准确结果的情况,当然不能说UCI的所有数据集合都是完整、可靠地标准化的试验样本。

在提出一个新的分类器时存在两个问题:以往的一些文章是否选择的learners足够多,以及是否将选择的learners都配置到了它们最好的一个状态。有的时候对分类器的知识储备并不足,就一通乱改,这样在对分类器进行优化的时候会使结果跑偏。因此本文不会随意的更改以往的经典分类器算法,只是调参来使分类效果达到最好。

很难获得一个分类器在一个数据集上可能达到的最大的精度,这对评估分类器很困难。本文做一个假定就是所有得到的最高的准确度就是分类器的最高准确度。

数据集可能不完整,也可能存在错误,也就是所谓的噪声,那么本文还是认为测到的就是准确的,哪个分类器效果不好也是因为分类器自身的局限性。

缺乏标准的数据分割,本文的解决方法就是对每个数据集使用相同的分割方法

数据

165个UCI数据集中丢弃57个(大规模数据集、不在一般的UCI版本中的、只有一个输入的等等)再加上现实世界中的4个数据集。其中又有一个数据集实际包含多个数据集的。

共165-57+4=112,112+1+1+4+2+1=121 data sets。

我们不使用预处理,数据转换或特征选择。原因是:

1)可以将这些转换的影响类似于所有分类器;然而,我们的目标不是为每个数据集达到最好的性能(这样最终可能需要进一步预处理),而是比较分类器;

2)如果预处理有利于一些分类器相对其他分类器来说,这种影响应该是随机的,因此比较没有统计学意义;

3)为了避免由于预处理出现的比较偏差,使用原始数据较为明智;

4)为了提高分类结果,进一步预处理最终应该是特定于每个数据集,这将很大程度上增加目前的工作;

5)额外的转换需要知识超出了本文的范围,并且应该在一个不同的研究里探索。

分类器

179中,在C、R、matlab中实现

结果和讨论

在121个数据集上评估179个分类器,给出了21659种组合classifier-data集。

出现错误的原因:

一些分类器在一些数据集上出错是由于共线性的数据,奇异协方差矩阵, 和在某些类所有的训练模式上相同的输入;rrlda_R要求所有的输入必须有不同的值在50%以上的训练模式;其他错误是由离散的输入、数据很少的类(尤其是在许多数据集 类),或过少的类(vbmpRadial需要3类)引起的。大型数据集可能缺乏内存,小数据集可能不满足分类器的每个类最小的模式。

总的来说,我们发现449错误,代表21659例的2.1%。这些错误情况下被排除在每个分类器的平均精度计算外。

验证(。。。。那一大段没看懂)

实验结论

The parRF_t achieves in average 94.1% of the maximum accuracy over all the data sets (Table 5, lower part), and overcomes the 90% of the maximum accuracy in 102 out of 121 data sets.

The random forest in R and tuned with caret (rf t) is slightly worse (93.6% of the maximum accuracy), although it achieves slightly better average accuracy (82.3%) than parRF_t.

The LibSVM implementation of SVM in C with Gaussian kernel (svm C), tuning the regularization and kernel spread, achieves 92.3% of the maximum accuracy.

其余的分类器,包括其他神经网络(径向基函数、学习矢量量化和级联相关)、判别分析、决策树,C5.0,基于规则的分类器, 其他bagging和boosting集成,近邻,贝叶斯,GLM,PLSR,MARS, 等等,没有竞争力。大多数最好的分类器实现R和调优使用caret,这似乎是最好的选择选择一个分类器实现。

通过实验发现大部分的分类器能够获得最好分类效果的可能性小于10%,实验中有二十个分类器的最高准确率高于95%
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息