如何处理包含名义数据的目标变量?

Posted

技术标签:

【中文标题】如何处理包含名义数据的目标变量?【英文标题】:How to deal with a target variable containing nominal data? 【发布时间】:2021-03-28 13:42:18 【问题描述】:

我正在从事一个 NLP 项目,其目标变量包含七个独特的句子,分别是“鼓舞人心和发人深省”、“信息丰富”、“承认和赞赏”等 4 个。至于我的理解,目标变量作为我们无法在它们之间建立定量比较。所以我的问题是编码这些变量的最佳方法是什么?如果我使用一种 Hot-encoding 对其进行编码,那么问题将是多类分类?

【问题讨论】:

【参考方案1】:

在分类中,类实际上代表什么并不重要,学习算法将每个类都视为分类。换句话说,无论类的名称是字符串、字符还是数字,都不会改变模型。这就是为什么最常见的选择是将类简单地表示为整数:1,2,3,... 例如在 scikit 中,这可以使用 LabelEncoder 来完成。

使用一种热编码是个坏主意,因为这会导致问题multi-label。这将使模型的问题变得更加复杂,并且很可能导致性能降低,或者需要更多的数据才能达到与常规分类相同的性能。这是因为在多标签问题中可能有更多的组合,在这种情况下,这种更高级别的复杂性是没有意义的,因为只能有一个类。

【讨论】:

以上是关于如何处理包含名义数据的目标变量?的主要内容,如果未能解决你的问题,请参考以下文章

XCode 如何处理带有多个目标的#import 标头语句?

如何处理具有 35 个唯一值的分类数据?

tcp/ip协议如何处理环回接口与目标地址为本机地址的数据包?

如何对混合型数据做聚类分析

如何处理包含需要执行的 SQL 语句字符串的表列?

如何处理ios目标c中的解析通知?