什么时候将分类变量转换为机器学习的数值变量?
When to convert a categorical variable into a numerical variable for machine learning?
我是机器学习的新手,我是 运行 我的数据分类算法 (xgboost
),使用 R
中的 caret
包。
但是,我对为了机器学习的目的将一些分类变量转换为数值变量感到困惑。我在网上搜索过,但找不到关于该主题的特定规则(如果存在的话)。
下面 url (xgboost) 的 xgboost
小插图提到 "Xgboost manages only numeric vectors." 这是否意味着我所有的特征(变量)只需要包含数值?但是,我看过一些使用 xgboost
的教程,其中变量是分类变量。
如有任何帮助,我们将不胜感激。
在 statistics/machine 学习中处理分类特征的主要方式是通过一种称为 one-hot encoding 的机制。
以下面的数据为例:
outcome animal
1 cat
1 dog
0 dog
1 cat
假设您想根据给定病例的动物类型预测结果(无论结果是什么)(observation/row/subject/etc)。这样做的方法是以单热方式对 animal
进行编码,如下所示:
outcome is_dog is_cat
1 0 1
1 1 0
0 1 0
1 0 1
基数 k 的动物列已被编码到 k 新列中,表明存在或不存在特定的 category/attribute 给定该行的 animal
的值。
从那里,您可以使用您想要的任何模型来预测基于(现在不同编码的)动物列的结果。但一定要将一只动物(一组)留在模型之外作为对照组。在这种情况下,您可以拟合逻辑回归模型 outcome ~ is_dog
并将 is_dog
的斜率系数解释为狗 与狗 相比第 1 个结果的可能性的增加或减少猫.
我是机器学习的新手,我是 运行 我的数据分类算法 (xgboost
),使用 R
中的 caret
包。
但是,我对为了机器学习的目的将一些分类变量转换为数值变量感到困惑。我在网上搜索过,但找不到关于该主题的特定规则(如果存在的话)。
下面 url (xgboost) 的 xgboost
小插图提到 "Xgboost manages only numeric vectors." 这是否意味着我所有的特征(变量)只需要包含数值?但是,我看过一些使用 xgboost
的教程,其中变量是分类变量。
如有任何帮助,我们将不胜感激。
在 statistics/machine 学习中处理分类特征的主要方式是通过一种称为 one-hot encoding 的机制。
以下面的数据为例:
outcome animal
1 cat
1 dog
0 dog
1 cat
假设您想根据给定病例的动物类型预测结果(无论结果是什么)(observation/row/subject/etc)。这样做的方法是以单热方式对 animal
进行编码,如下所示:
outcome is_dog is_cat
1 0 1
1 1 0
0 1 0
1 0 1
基数 k 的动物列已被编码到 k 新列中,表明存在或不存在特定的 category/attribute 给定该行的 animal
的值。
从那里,您可以使用您想要的任何模型来预测基于(现在不同编码的)动物列的结果。但一定要将一只动物(一组)留在模型之外作为对照组。在这种情况下,您可以拟合逻辑回归模型 outcome ~ is_dog
并将 is_dog
的斜率系数解释为狗 与狗 相比第 1 个结果的可能性的增加或减少猫.