当一些自变量是分类的而另一些是连续的时,机器学习算法和预处理的选择如何变化?这些数据是否可以直接应用于使用 one-hot 编码转换分类数据的算法?
例如,2 列是:Age 和 Race,Age 是连续的,Race 是分类的。
更新:连续变量的理想桶是未知的。
当一些自变量是分类的而另一些是连续的时,机器学习算法和预处理的选择如何变化?这些数据是否可以直接应用于使用 one-hot 编码转换分类数据的算法?
例如,2 列是:Age 和 Race,Age 是连续的,Race 是分类的。
更新:连续变量的理想桶是未知的。
为了澄清,你的意思是在一列中混合变量?例如 ABC123
如果是,则创建另外两列:一列是分类列,另一列是数值列。之后,您可以对它们进行编码(并非总是需要一种热编码)。
第11章“特征工程混合变量”中的详细解释:
https://www.udemy.com/feature-engineering-for-machine-learning/learn/v4/content
一种方法是在桶中“拆分”连续变量。比如说,年龄 - 0-18 岁,18-65 岁;65 岁以上。
然后,您可以将输入年龄分配给存储桶并将其作为分类变量进行威胁。
这取决于您使用的算法(和实现)。
例如,实现的线性回归sklearn要求所有输入变量都是数字的,因此编码是必要的,而实现的线性回归statsmodels可以很容易地处理分类输入变量。
如果您选择的算法需要对分类特征进行编码,那么有许多可用的选项(例如单热编码、目标编码、特征散列......)。在您的示例中,“Race”可能不太可能具有高基数,因此 one-hot 编码很好。在其他情况下,分类特征可以采用许多不同的值(例如美国的城镇),单热编码可能不是最佳选择,因为它会导致数据集过宽(尽管使用稀疏结构可以减轻这种后果) .