基本上,我有一个包含两列的数据集:
| Time (millis) | Speed (m/s) |--------------------------------| 0 | 0.5 || 20 | 1.5 || 40 | 4.5 || 60 | 8.5 || 80 | 8.9 || 100 | 7.5 || 120 | 4.3 || 140 | 1.5 || 160 | 0.5 || 180 | 0.5 || 200 | 0.5 || 220 | 0.5 |
这是一个人以20毫秒为单位的速度样本,展示了其跑步的速度变化情况。
我正在尝试检测冲刺(当一个人在短距离内以全速跑步时)。
由于我的需求性质,我正在用c
语言编写一个程序来计算这个。我可以用一种粗糙的方式来做,定义一些最小值和最大值,寻找峰值,然后就找到了冲刺。但我想应该有更好的方法,可能有一些我不知道的机器学习算法。
如果我能通过展示一些例子来教程序什么是冲刺,然后让它自动检测就好了。我只是不确定如何开始做这件事。
有没有人遇到过类似的情况,可以指导我正确的方向?
回答:
这感觉像是用火箭筒打苍蝇;我认为你的“粗糙”方法是唯一可行的方法。“冲刺”这个词并没有真正的意义……你要向机器提供冲刺的例子,这意味着你已经使用了你自己的、任意的分类方法来决定它是否是冲刺。
你如何定义这个问题?有些人可能以10米/秒的速度全力冲刺,而其他人可能以3米/秒的速度跑步并认为这是冲刺。你如何从你有限的数据集中知道那个人在那个时候是否达到了冲刺的极限?也许他们可以跑得更快。一个人的结果如何影响另一个人的数据集来确定他们的“冲刺”阈值?有很多问题,但我认为这些都是有效的问题。实际上,你只能根据你的数据做出推断;例如,最大速度与平均速度的关系是什么。我不会过度复杂化这个问题。
然而,如果你以一种受控的格式收集结果,让许多人冲刺,然后记录影响他们能力的因素:BMI、体重、年龄、医疗状况、逆风速度等等。那么你可能有一些可以从机器学习中受益的东西。