通常,如果我有回归问题并且我的初始数据集包含分类变量,例如:
column 1:
Math
Science
Science
English
我会将这个非数值变量转换为数值变量,例如:数学:0,科学:1,英语:2。但是,我最近发现一个教程说这个解决方案没有性能,因为那里没有最喜欢的类这些类之间没有增加,如果存在,我们无法量化它。
谁能为我解释一下,因为我通常使用解决方案一?
通常,如果我有回归问题并且我的初始数据集包含分类变量,例如:
column 1:
Math
Science
Science
English
我会将这个非数值变量转换为数值变量,例如:数学:0,科学:1,英语:2。但是,我最近发现一个教程说这个解决方案没有性能,因为那里没有最喜欢的类这些类之间没有增加,如果存在,我们无法量化它。
谁能为我解释一下,因为我通常使用解决方案一?
仅当您的值有顺序时,此解决方案才会有效。一些模型使用点之间的距离作为学习函数,如果你使用你的方法,一个数学学生和一个英语学生(0 和 2 形成 2 距离)将比数学学生和科学学生有更多的距离(0 和 1 形成 1 的距离)。使用这种方法会产生偏见,因此您必须采用另一种方式。一种众所周知的方法是 One Hot Encoding,它将创建 3 个二进制变量 Column1_Math、Column1_Science、Column1_English,其值为 0 或 1(例如,如果第 1 列是数学,那么您将拥有 Column1_Math = 1、Column1_Science = 0、 Column1_English = 0)。这样,您就可以避免使模型出现偏差。
我已经在这个答案中解释了我知道处理您的问题的其他方法,我强烈建议您看一下