Python中基于time_played缩放运动员GPS数据集输入特征的技术问询
处理依赖于time_played的运动员GPS数据集
我看你正在处理足球运动员的GPS表现数据集,这里一共有6个输入/预测变量,其中distance、acc_events、dec_events这三个指标是和time_played强相关的——上场时间变了,这三个数据自然也会跟着变动。先把你的可复现代码整理成规范的Python格式,方便后续分析:
import pandas as pd # 构建数据集字典 data = { 'player id': ['1', '2', '3', '4'], # 分类变量 'position': ['1', '2', '3', '4'], # 分类变量 'time_played': ['50', '90', '88', '70'], 'distance': ['5117', '11520', '10865', '8652'], 'acc_events': ['2', '4', '8', '8'], 'dec_events': ['3', '6', '7', '5'] # 补全你未写完的减速事件字段 } # 转换成DataFrame df = pd.DataFrame(data)
几个关键的处理建议:
- 类型转换优先做:当前所有数值类变量(
time_played、distance、acc_events、dec_events)都是字符串格式,必须先转成数值类型才能做后续的统计或建模:# 批量转换数值型变量 num_cols = ['time_played', 'distance', 'acc_events', 'dec_events'] df[num_cols] = df[num_cols].astype(int) # 分类变量转成category类型,节省内存 df['player id'] = df['player id'].astype('category') df['position'] = df['position'].astype('category') - 消除time_played的影响:因为那三个指标依赖上场时间,直接对比不公平,建议计算单位时间表现指标,比如:
# 计算每分钟跑动距离(米/分钟) df['distance_per_min'] = df['distance'] / df['time_played'] # 计算每分钟加速事件数 df['acc_per_min'] = df['acc_events'] / df['time_played'] # 计算每分钟减速事件数 df['dec_per_min'] = df['dec_events'] / df['time_played'] - 后续分析方向:如果是做建模,可以考虑把
time_played作为控制变量,或者直接用单位时间指标作为输入,这样模型能更准确地捕捉运动员的真实表现,而不是受上场时间的干扰。
内容的提问来源于stack exchange,提问作者vishnu prashanth
相关产品推荐
相关产品推荐

