什么模型适合小数据集的分类?

数据挖掘 分类 多类分类
2021-09-24 06:35:09

我有一个包含 365 条记录的数据集,我想在其上应用分类模型(二进制分类)。

作为输出,除了分类标签之外,我还想检索每个实例的分类置信度。

我不知道如何处理这种情况。例如,我可以对这个小数据集使用线性分类器(SVM、逻辑回归)吗?因为,我也想检索分类置信度。

我读到决策树可以成为小型数据集的一个很好的分类器,但是我怎样才能用它来检索分类置信度呢?

数据集由推文组成,每条推文都分为正面或负面(从情绪的角度来看),我的特征向量由 2400 个特征(word2vec 嵌入和其他特征的组合)组成。

另外,你推荐我在这么小的数据集上使用 word2vec 嵌入吗?我认为分类器无法使用小数据集从他们身上学到一些东西。

2个回答

是否使用线性分类器的问题较少取决于您在数据集中拥有的样本数量,而更多取决于您的数据集是否是线性可分的(顺便说一下,SVM 可能与内核技巧非线性)。

现在关于分类的置信度,在 SVM 中,有一种方法可以使用Platt 缩放计算给定样本属于特定类别的概率(“原始论文”)。这是 sklearn 的 SVM 置信度实现中使用的方法。您可以在以下链接中阅读有关它的更多信息:

如何计算 SVM 分类器的置信度度量

在 SVM 和线性回归模型中,您可以计算样本与边界的距离并将其视为置信度测量(但并非完全如此)。

对于决策树,我不是专家,但在以下链接中发布并回答了类似的问题:

决策树,如何理解或计算预测结果的概率/置信度

我强烈建议使用一些已知的嵌入方法,例如 word2vec,因为正如您所提到的,您的数据集太小,您的模型无法从中正确学习上下文和词汇的编码。

了解分类器是否适合您的数据集的唯一方法是尝试并测试它。您提到的所有分类器都有一种方法可以对其预测进行置信度。逻辑回归和决策树将为您提供样本是正类的概率。支持向量机将为您提供到决策超平面的距离,可用作置信度度量;通过一些额外的计算,您还可以获得 SVM 的概率,但我不会在这里详细说明。

当特征数量远大于样本数量时,对如此小的数据集的一个担忧是过度拟合。您应该使用某种形式的正则化来解决这个问题。