使用名义价值而不是真实价值或布尔价值的最佳方法是什么?它包含在机器学习的特征向量子集中?
我应该将每个名义值映射到实际值吗?
例如,如果我想让我的程序为输入功能可能包含的web服务用户学习预测模型
{gender(boolean),age(real),job(nominal)}
其中因变量可以是网站登录的数量。
变量作业可能是
之一{PROGRAMMER,ARTIST,CIVIL SERVANT ......}。
我应该将PROGRAMMER映射到0,将ARTIST映射到1等等吗?
答案 0 :(得分:1)
进行单热编码,如果有的话。
如果您的数据具有分类属性,建议使用可以很好地处理此类数据的算法,而不需要编码,例如决策树和随机森林。
答案 1 :(得分:0)
如果您阅读了名为“使用Spark进行机器学习”的书,那么作者 写道,
分类功能
分类要素不能用作原始形式的输入,因为它们不是 数;相反,它们是变量可以采用的一组可能值的成员。在前面提到的示例中,用户占用是一个分类变量,可以取得学生,程序员等的价值。
要将分类变量转换为数字表示,我们可以使用a 常见的方法称为1-of-k编码。一种方法,例如1-of-k编码 需要以对机器有意义的方式表示名义变量 学习任务。序数变量可能以原始形式使用,但通常是 以与名义变量相同的方式编码。
我有同样的想法。
我认为如果有一个有意义的(精心设计的)转换函数将分类(标称)映射到实际值,我也可以使用只采用数值向量的学习算法。
实际上我做过一些我不得不这样做的项目 关于学习系统的表现没有提出任何问题。
对投票反对我的问题的人, 请取消您的评估。