首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为一组具有相似类别的列生成一个热编码数据

如何为一组具有相似类别的列生成一个热编码数据
EN

Stack Overflow用户
提问于 2020-06-01 21:57:36
回答 1查看 79关注 0票数 0

我从网上收集了一堆数据,试图预测体育比赛的结果!但是,现在我发现自己困惑于如何为培训准备数据集。基本上,我有一个DataFrame,它看起来如下所示,当然还有更多的列

代码语言:javascript
复制
            HomeTeam    AwayTeam       HTR   HF      AF  HomePlayStyle  AwayPlayStyle
Date                            
2014-08-16  Arsenal     Crystal Palace  D   13.0    19.0    4-1-4-1         4-2-3-1
2014-08-16  Leicester   Everton         A   16.0    10.0    4-4-2 double 6  4-2-3-1
2014-08-16  Man United  Swansea         A   14.0    20.0    3-5-2           3-5-2
2014-08-16  QPR         Hull City       D   10.0    10.0    5-3-2           5-4-1
2014-08-16  Stoke City  Aston Villa     D   14.0    9.0     4-2-3-1        4-3-3 Attacking

我的因变量(我需要预测)将是HTR(3类:d-平局,A-客场赢,H-主场赢)。但是在培训之前,由于我需要准备数据集,我认为我需要使用一种热编码来将列HomeTeam、AwayTeam、HomePlayStyle、AwayPlayStyle更改为零和1。不过,我对这种做法有几点怀疑:

  1. HomePlayStyle和AwayPlayStyle有相似的类别,当我使用一种热编码时,相同的游戏风格(示例中的第三个示例)是创建两列,但在技术上它们是相同的。这会影响我的成绩吗?或者我应该尝试将它们合并,还是有办法绕过这个问题?当然,这两列中甚至都有4-2-3-1,但是pd.get_dummies()创建了2列,
  2. 和HomeTeam和AwayTeam列(我在不同的数字列中有这些球队的一些时间统计数据,但我认为我需要在训练期间将团队名称保存在数据集中),我应该对它们进行一次热编码吗?尽管为同一支球队创造了两列(例如HomeTeam_Arsenal和AwayTeam_Arsenal),但我认为这里有一个优势,因为在主场比赛与客场比赛有很大的不同。所以这不应该是个问题!我是不是做了正确的假设?我甚至需要对这些列集进行一次热编码吗?

任何想法都会很感激的。

编辑: 3.我如何确保我的算法实现了HomePlayStyle_4-2-3-1(在得到假人之后)实际上表示的是HomeTeam而不是AwayTeam?是否存在连接列这样的东西,这样我就可以知道哪些列属于HomeTeam,哪些属于AwayTeam。

EN

回答 1

Stack Overflow用户

发布于 2020-06-01 22:07:24

在CrossValidate之前,你问题的理论部分似乎更合适,所以我将简要地谈谈这个问题。至于一种热编码,对我来说最简单的方法是通过熊猫:

代码语言:javascript
复制
categorical_cols = ['HomeTeam', 'AwayTeam', 'HomePlayStyle', 'AwayPlayStyle']
X = pd.get_dummies(df, columns=categorical_cols)

这将为格式为{column_name}_{column_value}的每个列中的每个可能的值创建一个列,因此您将得到类似于HomeTeam_Arsenal的列。

变量的问题取决于您正在考虑使用的模型类型。多元共线性可能是Logistic回归中的一个问题,但在随机森林中的问题可能不多。而且,永远不要忘记,商业知识是非常重要的,所以如果你知道球队在主场或客场比赛时的胜率不同,那么你应该把这一点包括在你的模型中。如果您不确定,那么测试这两个选项。机器学习是一个非常迭代的过程,所以不要害怕尝试许多选项。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62141626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档