我有一个关于运动员比赛结果的数据集(以R
作为data frame
)。
athlete racedistance time location tracktype date coach
A 100 10.0 UK typeA 2014-01-01 carlos
A 200 20.0 US typeB 2014-02-01 carla
A 100 9.5 AUS typeC 2014-03-01 chris
B 100 11.0 UK typeA 2014-01-01 carla
B 200 21.0 US typeB 2014-02-01 carlos
B 400 61.0 AUS typeC 2014-03-01 carla
B 100 10.5 GER typeA 2014-04-01 clive
C 100 9.5 UK typeA 2014-01-01 clive
C 200 21.5 US typeB 2014-02-01 chris
是否有一种适当的机器学习算法或方法,在试图预测未来比赛中运动员的time
时,可以将每个运动员先前的结果作为一个特征?
例如,athlete A
有三场比赛,其间休息一个月。在第三场比赛中,他在相同距离内的表现略好于第一场比赛。
一个算法能了解到第二场比赛对运动员有影响,这意味着他在第三次比赛中表现得更好吗?
从我所读到的关于这个主题和我已经完成的培训示例来看,似乎每一行数据都应该是独立的,对于所有的ML算法来说都是这样吗?我是否应该考虑另一种预测技术来解决这类问题?
发布于 2015-02-10 08:26:19
我认为这里的关键是你认为什么是因变量。例如,你提到了三个月的休息。对种族之间的其余部分进行编码可能比简单地编码其余的日期更好,因为很多日期与实际所说的日期是多余的。与任何机器学习算法一样,数据的表示是关键,在许多方面,实际应用的算法并不那么重要。
发布于 2015-02-05 02:02:08
通过使用您的特性,您可以使用ML算法(可能是回归算法或SVR或其他什么)来了解这一事实(后续比赛正在提高运动员的性能)。要做到这一点,您可能需要删除日期列,并引入一些新列,可能是“竞赛号”,第一次比赛为0,第二次为1,第三次为2,等等。
在这种情况下,回归模型将能够了解你所说的“第二场比赛对运动员有影响,这意味着他在第三次比赛中表现得更好”。这都是关于特征选择的。
发布于 2015-02-05 09:22:04
好的,在这种情况下,时间是你的因变量,所有其他变量都是你的特性。
您应该使用线性回归(因为更复杂的东西需要更多的专业知识),任何机器学习库都已经实现了。
不要使用日期作为一个功能,这些通常是糟糕的估计。
https://datascience.stackexchange.com/questions/5055
复制