处理包含连续变量和分类变量的数据集

数据挖掘 机器学习 数据清理 分类数据
2021-09-17 14:27:42

当一些自变量是分类的而另一些是连续的时,机器学习算法和预处理的选择如何变化?这些数据是否可以直接应用于使用 one-hot 编码转换分类数据的算法?

例如,2 列是:Age 和 Race,Age 是连续的,Race 是分类的。

更新:连续变量的理想桶是未知的。

3个回答

为了澄清,你的意思是在一列中混合变量?例如 ABC123

如果是,则创建另外两列:一列是分类列,另一列是数值列。之后,您可以对它们进行编码(并非总是需要一种热编码)。

第11章“特征工程混合变量”中的详细解释:

https://www.udemy.com/feature-engineering-for-machine-learning/learn/v4/content

一种方法是在桶中“拆分”连续变量。比如说,年龄 - 0-18 岁,18-65 岁;65 岁以上。

然后,您可以将输入年龄分配给存储桶并将其作为分类变量进行威胁。

这取决于您使用的算法(和实现)。

例如,实现的线性回归sklearn要求所有输入变量都是数字的,因此编码是必要的,而实现的线性回归statsmodels可以很容易地处理分类输入变量。

如果您选择的算法需要对分类特征进行编码,那么有许多可用的选项(例如单热编码、目标编码、特征散列......)。在您的示例中,“Race”可能不太可能具有高基数,因此 one-hot 编码很好。在其他情况下,分类特征可以采用许多不同的值(例如美国的城镇),单热编码可能不是最佳选择,因为它会导致数据集过宽(尽管使用稀疏结构可以减轻这种后果) .