假设您有一个包含特征变量和单个目标变量的巨大数据文件。现在,某些功能由字符串组成,例如“ b”,“ c”,“ t”,“ p”,“ g”等。由于框架无法处理,因此必须将其编码为数字。最简单的选择是使用LabelEncoder。这很好,但仅当字符串值彼此相关时才有效。在我的示例中,这些是“婴儿”,“儿童”,“青少年”,“父母”和“祖父母”的快捷方式。在这种情况下,您显然希望按顺序标记它们,例如baby = 0,child = 1,teenage = 2,依此类推。但是,如果它们彼此不相关,则学习模型可能会认为这是相互关联的,因此您必须使用其他方法。那就是OneHotEncoder加入业务的地方,以拆分分类功能。
但是,我的问题是:什么时候应该使用OHE?我问老师,他的回答是:“仅在使用LE时首先获取特征与目标变量之间的相关性。然后,尝试OHE并查看相关性是否得到改善。如果是,则使用OHE,否则,继续使用LE”。问题出现如下:使用OHE之后如何获得特征与目标变量之间的相关性? OHE将1个要素分为X列,具体取决于该要素的不同选项的数量,我不确定如何从这些X列中获取一个相关数。
我的解释是否正确的原始问题:
对功能进行编码-有很多带有char值的分类功能。您需要为它们使用LabelEncoder和OneHotEncoder。另外,请查看是否需要对它们全部使用OneHotEncoder-例如,通过检查OneHot Encoding前后的LabelEncoded功能和目标变量之间的相关性。 (如果您的变量实际上表示某种增量的,层次结构的关系,则OneHot编码没有任何意义-我们的数据集对此并不了解。)