【发布时间】:2020-04-04 13:37:23
【问题描述】:
(数据:https://1drv.ms/u/s!ArLDiUd-U5dtg1H6y1_0f_m5f2by?e=OmKeWp)
我正在尝试预测路线的难度。一条路线由一系列点组成,每个点相距 10 米。每个点都有以下信息:
路径宽度
森林密度
下落速度(下落时你的身体会达到什么速度)
坡度
对于每条路线也有给定的难度。 但是这些困难是由不同的人给出的,并且差异很大。所以一个人给了一条路线 4。但另一个人可能给了这条路线 2。所以数据包含人为错误。
到目前为止我做了什么:
我计算了每条路线的平均值和标准差。所以我取了一条路线的所有点并用它来计算这些统计值。我还添加了路线的长度(点数 * 10)。
(diff = 路线难度。取值范围为 1-12)
然后我将这些值放入线性回归模型中。结果证明这是一个好的开始:
Mean Absolute Error: 1.239902061226418
Mean Squared Error: 2.3566221702532917
Root Mean Squared Error: 1.53512936596669
问题
但现在我不知道该怎么做才能改进它,因为我缺乏机器学习方面的知识。
我想到了使用神经网络并输入所有点。最长的路线是 5300 点长,所以我只想说,每条路线有 5300 个输入,并且这些路线的填充点为 0,这还不够长。 任何类似的信息或输入?
但我也希望通过使用如上所示的预测值(平均值、标准差等)来获得良好的结果。那么我可以做些什么来改进预测呢?
【问题讨论】:
-
非常一般的建议:您可能想要检查您的任何输入数据是否超出正态曲线,并在必要时对其进行重新归一化。或者,线性方法可能还不够,您可能需要更强大的预测器。
-
你的意思是重新评估难度?会非常困难,甚至是不可能的,因为我没有任何专业知识来判断路线的难度:/除了线性之外,您还会建议哪些方法?以及如何获得更强大的预测器?
-
不是特别困难...我的意思是,检查每个输入列的行为,而不仅仅是困难;为了使它们在线性算法上运行良好,您需要对它们进行变换,使其尽可能线性或尽可能,或者至少遵循正态分布。至于替代方案,请参阅:machinelearningmastery.com/…
标签: python machine-learning scikit-learn neural-network linear-regression