给定数据集,如何选择学习算法?

Posted

技术标签:

【中文标题】给定数据集,如何选择学习算法?【英文标题】:Given the dataset, how to select the learning algorithm? 【发布时间】:2020-09-20 12:25:19 【问题描述】:

我必须构建一个机器学习模型来将句子分类为不同的类别。我有一个包含 2 列(句子和标签)和 350 行的数据集,即形状为 (350, 2)。为了将句子转换为数字表示,我使用了 TfIdf 矢量化,因此转换后的数据集现在有 452 列(使用 TfIdf 获得 451 列,1 是标签),即形状为 (350, 452)。更一般地说,我有一个数据集,其特征比训练样本多得多。在这种情况下,最好的分类算法是什么?逻辑回归、SVM(又是什么内核?)、神经网络(又是哪种架构?)、朴素贝叶斯还是有其他算法吗?

如果我将来获得更多的训练样本(但列数不会增加太多),比如形状 (10000, 750),怎么样?

编辑:这些句子实际上是银行对账单的叙述。我有大约 10 到 15 个标签,所有这些标签都是我手动标记的。例如。税收、银行手续费、贷款等。将来我确实计划获得更多报表,并且我也会给它们贴上标签。我相信我最多可能会拥有大约 20 个标签。

【问题讨论】:

【参考方案1】:

对于这么小的训练集,我认为只有通过一些预训练的语言模型(例如 GPT-2)和微调您的问题才能获得任何合理的结果。即使对于更大的数据集,这可能仍然是正确的,即使您从头开始训练自己的神经网络,神经网络可能仍然会做得最好。顺便说一句,你有多少个标签?这些是什么标签?

【讨论】:

我在编辑部分添加了有关标签的信息 幸运的是标签不多,我认为使用预先训练的语言模型仍然会给你最好的结果。一个缺点是 GPT-2 相当大,对句子进行分类可能需要大量时间和资源。 谢谢,但对我来说这太复杂了

以上是关于给定数据集,如何选择学习算法?的主要内容,如果未能解决你的问题,请参考以下文章

R语言学习-KNN临近算法

机器学习基石:04 Feasibility of Learning

《统计学习方法》:第三章 K 近邻算法

算法学习笔记:knn理论介绍

R语言基于机器学习算法进行特征筛选(Feature Selection)

机器学习100天(三十):030 K近邻分类算法-K值的选择