文本分类/机器学习:我还需要“默认”类别吗?
Posted
技术标签:
【中文标题】文本分类/机器学习:我还需要“默认”类别吗?【英文标题】:Text classification/Machine learning: do I also need a 'Default' categorie? 【发布时间】:2017-03-14 09:52:39 【问题描述】:对于我的任务,我需要制作一个机器学习程序,它执行以下操作:
作为输入,程序获取项目的建筑计划(以 PDF 文本形式编写),主要是桥梁和水闸。机器学习程序将该 PDF 中的每个句子作为样本(该句子中的单词是特征),并且需要将每个样本/句子分类为以下类别之一:硬件相关和软件相关。 (我将朴素贝叶斯算法与 TF-DIF 结合使用。)
然而,你可以想象,也有很多不相关的句子,既不是硬件也不是软件相关。我是否需要创建一个单独的类别“默认/无关”,以便我总共有三个类别?还是只保留这两个类别,并根据它们的概率对它们进行分类更好?例如;一句话在0.6归类为硬件,那我就忽略了。但如果结果是 0.8 或更高,那么我将其归类为硬件。
【问题讨论】:
【参考方案1】:你需要在你的训练集中使用不相关的句子,我将举例说明原因:
如果您有一个三类分类问题,您可以获得以下输出: 不相关 95% 硬件 4% 软件 1%
成为 Harware 的可能性是成为 Software 的可能性的 4 倍。但是你显然会选择 Irrelevant。
如果您使用二类数据集,您将获得以下输出: 硬件 80% 软件 20%
成为硬件的可能性再次是成为软件的可能性的 4 倍,但两个百分比的总和必须为 100%,因为分类器认为这两个可能性都是整体。
您有两种不同的选择:
1 - 3 类分类问题(硬件、软件、无关)
2 - 具有 2 类分类问题的两个分类器:
分类器 1 -> 正类硬件,负类:软件 + 无关
分类器 2 -> 正类软件,负类:硬件 + 无关
【讨论】:
感谢您的解释!我将制作一个额外的类别,涵盖不相关的句子。还有一个问题。当我对句子进行分类时,有时我真的怀疑它是否应该被归类为硬件或无关紧要,但我通常稍微倾向于无关紧要。我应该在训练集中覆盖这些句子吗?或者我不应该在训练集中使用这些有问题的句子吗? 不客气。基本思想是数据集必须包含与您将来将拥有的相同比例的 HW、SW 和不相关的句子,以获得良好的概率。关于您不确定类别的句子,有一些算法可以处理不确定性,但使用起来更复杂。在我看来,如果您不介意将来对这类句子进行分类,请将它们从训练集中删除,如果您更愿意将它们分类为不相关,请使用不相关标签将它们包含在训练集中。 谢谢!我想我不会把那种句子放在训练集中。我看到其他人说您不需要尝试为每个类别获取相同数量的训练样本。他们说如果价差和真实数据一样就好了。我很高兴听到这一点,因为软件类别是极少数(大约 70% 不相关,25% 硬件和 5% 软件)。那么,我真的需要尝试为每个类别获取相同数量的样本吗? ***.com/questions/39444786/… 另外,HW/SW 的召回比精度重要得多。由于我有更多不相关的句子,我真的希望能够正确预测 HW/SW 句子。一些不相关的句子是否被归类为 HW/SW 并不重要。【参考方案2】:每种方法的效果取决于您将使用多少训练数据。目前我正在从事一个大型项目,该项目本质上对文本、逐句执行类似的任务,尽管我使用的是 7 个类别。我使用了 7 个标签,所以没有“不相关的”桶。我在展示调查结果时使用了阈值,所以任何高于 0.75 的确定性评级都可以正常工作。使用“不相关”存储桶的问题是您必须训练它“不相关”的内容,这可能是一个庞大的多样化数据集。所以选择你的概率选项。
【讨论】:
以上是关于文本分类/机器学习:我还需要“默认”类别吗?的主要内容,如果未能解决你的问题,请参考以下文章