阅读 69

决策树分类器,适用于是什么意思

文章目录1 .背景1.1研究方法1.2数据集与代码的链接2 .测试结果3 .关于数据独立同分布的思考4 .结论5 .代码与数据集的链接

1 .背景1.1研究方法

随着深度学习的发展,对大数据的训练和学习已经非常成熟,并广泛应用于学术界和工业界。 但是,在很多兼职工作中经常会遇到样本数为100到1000的超小规模数据集。 例如孕妇孕期的详细指标和之后害怕孤独的月饼情况。 业界尚不清楚这种情况下的最佳做法是什么,但为了研究这一点,制定了以下研究方法。

检索大量用于分类的小基准数据集,共检索108个数据集。 这些数据集也可用于测试基准回归算法。 请选择几个有代表性的ML分类器。 线性支持向量机、逻辑回归、随机森林、光照决策树(Augogloon ) )自动工具包)。 选择合适的超级参数。 使用交叉检查在每个数据集上分别测试每个分类器。 绘制结果图。 1.2数据集和代码链接数据集和代码链接是https://github.com/sergeyf/smalldatabenchmarks

2 .测试结果下图显示了各分类器的测试结果,所选指标为One-vs-All时的AUROC交叉验证平均值(AUROC值为ROC曲线下的面积) )。

除此之外,还有几个额外的发现:

虽然AutoGluon总体上是最好的,但是可能存在AUC0.5问题。 逻辑回归分类器没有问题,LightGBM也很少出现问题。 AutoGluon需要时间。 AutoGluon有一个预算参数,用于定义提高效果需要多长时间。 为了保证效果,交叉验证时,每1折的数据至少使用5分钟。 整个基准测试所需的时间为300s=1.5天,将108个数据集对折,总共一天半。 线性SVC的表现总体上优于逻辑回归。 这两个数据集上的SVC性能优于所有其他模型,这些数据集上的auroc值分别为0.3和0.1,因此实际上值得尝试线性SVC。 逻辑回归需要正则化,以免像AutoGluon和随机森林那样泛化失败。 LightGBM次之。 我试着用hyperopt参加,用scikit-optimize和Optuna参加,但都没有什么效果。 可能是人为错误造成的。 随机森林相当好。 随机林优化过程比LightGBM和AutoGluon优化过程更简单、更快。 我们只交叉检查并测试了随机森林深度参数。 统计最高分类器或最高AUROC 0.5%范围内的次数,优良分类器排名如下。

autogluon(sec=300 ) 71lightGBM ) n_hyperparams=50 ) 43lightGBM ) n_hyperparams=25 ):41随机树系: 32逻辑回归: 28 svvsvs

autogluon(sec=300 ) 0.885lightgbm(n_hyperparams=50 ) 0.885lightgbm(n_hyperparams=25 ) ) 0.873随机林0.873

逻辑回归: 54SVC:48随机林: 25lightgbm(n_hyperparams=25 ):19lightgbm ) n_hyperparams=50 ):18自动图形

当我第一次看到上述结果时,我感到一丝惊讶。 因为以前我觉得自己不需要在小型数据集上使用复杂的模型。 但是,这似乎与在这108个数据集上的测试结果相反。 从图中可以看出,即使在数据量很少的时候,AutoGluon也很有效,LightGBM和随机森林远远领先于两种线性模型。 图中线性模型的曲线有一个奇怪的峰,线性模型的结果突然上升,但原因不明。

最后一幅图显示了通过每个分类器的“交点验证”获得的AUROC平均值的标准偏差。

从图中可以看出,无论数据集大小,线性模型不仅泛化能力低,而且泛化方差也高。

3 .关于数据的独立同分布考虑的这些实验的适用性如何? 训练数据和测试数据是独立的,分布也是一样。 测试数据、训练数据、验证数据都很相似。 这是非常不现实的,但这是学术论文评估机器学习算法时使用的数据集模型。 对于IID数据,无论数据集大小如何,LightGBM都可能比线性模型更有效。

然而,如果测试集与训练集相关联但来自不同的分布,即测试集是协同位移,则正文的实验结论不一定成立。 这种情况很难测试。 因为IID数据是现成的,所以直接使用基准数据集就可以了,但实际上很少有与训练集对应的协同变量移位测试集。

4 .结论如果对数据独立同分布的场景感兴趣,即使只有50个样本,非线性模型也有可能很好地工作,可以优先考虑。 AutoGluon在获得分类性能上限方面很出色

的方法,但是要理解最终得到的复杂的集成结果是非常困难的。在调参方法中,hyperopt虽然存在一些问题,但是效果依然比我尝试过的其它算法要好。SVC的表现很少优于其它所有算法。

  另外,还有一些注意事项:

LightGBM有许多强大的功能,本实验中还未涉及这些功能,例如,缺失值处理(我们用到的数据集没有缺失值),分类变量的智能编码(本文使用独热编码)以及对每个特征进行单调约束(需要先验知识)等。AutoGluon包含了一个表格神经网络(tabular neural network),但我还没有单独对其运行基准测试。研究表格神经网络结构是否能适用于小型数据集应该会很有趣。本文只针对分类,针对回归算法的结论可能有所不同。 5. 代码和数据集链接

  https://github.com/sergeyf/SmallDataBenchmarks

  文章最后给自己打个广告。先做个自我介绍:我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池安全恶意程序检测第一名,科大讯飞阿尔茨海默综合症预测挑战赛第四名,科大讯飞事件抽取挑战赛第七名,Datacon大数据安全分析比赛第五名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法行业就业。希望和大家一起成长进步。以下几个专栏欢迎大家订阅学习:

AI比赛经验分享

https://blog.csdn.net/herosunly/category_9393702.html

机器学习入门之工具篇

https://blog.csdn.net/herosunly/category_10457626.html

爬虫实战
https://blog.csdn.net/herosunly/category_10748674.html


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐