我是否保留具有数字类别的要素或创建虚拟变量?

时间:2016-10-17 09:48:29

标签: r pandas machine-learning logistic-regression feature-extraction

我正在处理一个数据集,该数据集包含数字特征和类别但使用整数编码的功能。例如,如果是赛马,

horse_id   race_date    track_no        race_number    barrier_number  won_race  
1          2016-10-01   100             1              4               1
2          2016-10-01   100             1              3               0
1          2016-10-15   200             3              5               0
...

所以,如果我创建了一匹马的模型,可以赢得一场比赛,并使用像race_number这样的功能(在同一个赛道上可以有几场比赛)那应该对赛道条件产生影响)和barrier_number(一匹马可能更喜欢在内部障碍或外部障碍等),我应该保留这些特征,还是创建表示1的虚拟变量(存在)和每行变量0(不存在)?

这是一个简单的例子,但这些列可能有大量可能的值,创建虚拟变量会增加很多特征的维度。这是一个必须做出的权衡,还是只留下一个列呢?

编辑另外,如果我按原样保留列并将其转换为pandas中的护理dtype,这是一个好习惯吗?像Scikit-learn这样的现有ML库是否会正确处理?

1 个答案:

答案 0 :(得分:0)

对于所描述的功能(race_numberbarrier_number),我认为离开原样是完全可以的。但是,对于上面的示例,我将编码track_no功能。

这是因为各个track_no值之间没有关系。

我会把上面的例子改为:

horse_id   race_date    track_100      track_200        race_number    barrier_number  won_race  
1          2016-10-01   1              0                1              4               1
2          2016-10-01   1              0                1              3               0
1          2016-10-15   0              1                3              5               0

我希望有所帮助!