我正在尝试创建一个模型来预测某人是否有中风的风险。我的数据包含一些“对象”变量,可以轻松编码为 0 和 1(例如性别)。但是,我有一些具有 4 个以上类别的对象变量(例如工作类型)。
我正在尝试将这些对象编码为整数,以便我的模型可以摄取它们。我遇到了两种方法:
这两种方法有区别吗?如果是这样,建议的最佳前进道路是什么?
是的,这两个是不同的。如果您使用第一种方法,它会创建更多列。这意味着模型需要更多的特征来适应。如果您使用第二种方式,它只会为模型创建 1 个特征来适应。在机器学习中,两种方式都有自己的优点和缺点。
推荐 1 条路径取决于您使用的机器学习算法、特征重要性等...
走虚拟变量路线。
假设您有一个包含 5 种工作类型的专栏:建筑工人、数据科学家、零售助理、机器学习工程师和调酒师。如果您使用标签编码器 (0-4) 来缩小数据范围,您的模型会将“数据科学家”的职位解释为比“建筑工人”的职位大 1。它还会解释“调酒师”的职称比“建筑工人”大4。
这里的问题是这些工作类型实际上彼此没有关系,因为它们纯粹是分类变量。如果您对列进行虚拟化,它确实会扩大您的数据范围,但您可以更准确地表示数据实际表示的内容。
使用虚拟变量,从而创建更多列/特征来拟合数据。由于您的数据将事先进行缩放,因此不会在将来产生问题。 总的来说,任何模型的准确性都取决于数量。涉及的特征越多,我们的预测就越准确