机器学习中的标称值数据集

Nominal valued dataset in machine learning

使用标称值而不是实数或布尔值来包含在机器学习的特征向量子集中的最佳方式是什么?

我应该将每个标称值映射到实际值吗?

例如,如果我想让我的程序为网络服务用户学习预测模型,其输入特征可能包括

{ 性别(布尔值)、年龄(实际)、工作(名义)}

其中因变量可能是网站登录次数。

可变作业可能是

之一

{ 程序员、艺术家、公务员...}。

我应该将 PROGRAMMER 映射到 0,将 ARTIST 映射到 1 等等吗?

做一个一次性编码,如果有的话。

如果您的数据具有分类属性,建议使用无需编码即可很好地处理此类数据的算法,例如决策树和随机森林。

如果您阅读了名为 "Machine Learning with Spark" 的书,作者 写道,


分类特征

分类特征不能以其原始形式用作输入,因为它们不是 数字;相反,它们是变量可以采用的一组可能值的成员。前面提到的例子中,user occupation是一个分类变量,可以取student、programmer等值。

:

要将分类变量转换为数值表示,我们可以使用 称为 1-of-k 编码的常见方法。一种方法,例如 1-of-k 编码 需要以对机器有意义的方式表示标称变量 学习任务。序数变量可能以其原始形式使用,但通常 编码方式与标称变量相同。

:


我也有同样的想法

我认为如果有一个有意义的(设计良好的)转换函数将分类(标称)值映射到实际值,我也可以使用只接受数值向量的学习算法。

实际上我已经完成了一些我必须这样做的项目并且 没有提出关于学习系统性能的问题。

对于对我的问题投反对票的人, 请取消您的评价。