将机器学习应用于训练数据参数

时间:2019-02-21 09:40:43

标签: machine-learning deep-learning data-modeling

我是机器学习的新手,并且我了解到有一些参数和选择适用于您附加到特定输入集的模型,可以对其进行调整/优化,但是这些输入显然与通过对您拥有的任何源数据进行切片和切块而生成的字段相关,这对 you 来说是有意义的。但是,如果您决定建模和分割源数据以及培训数据的方法不是最佳方法,该怎么办?是否有方法或工具将机器学习的功能不仅扩展到模型,而且还扩展了训练数据的创建方式?

假设您正在分析移动人员的加速度计,GPS,心率和周围地形数据。您想尝试确定此人可能精疲力竭并停下来的位置,假设他们将根据其轨迹继续沿直线运动,并且爬上任何一座山都将使心跳加速至必须停下来的某个点。如果他们正在跑步或走路,显然会改变这些东西。

因此,您可以分割数据,并随时纠正自己的操作方式,但这与主要问题不太相关:

  • 沿X,Y,Z轴将过去的 A 秒数的原始加速度计数据切片为 B 尝试剖析的切片数量,可能对其应用了CNN,以确定跑步还是步行
  • 将最近的 C 秒原始GPS数据切成一系列的 D (纬度,长)对,每对代表原始数据的 E 秒的平均值
  • 根据前一个序列,通过切片下一个 F (或秒)距离,确定速度和轨迹,并确定即将到来的坡度,是确定 G 的另一种选择)到 H 个切片的数量,对每个切片进行分析等。

您明白了。您如何有效地通过 H 确定 A ,其中一些将完全改变模型输入的数量和行为?我想消除我对正确做法可能有的偏见,并让它确定端到端。有针对性的解决方案吗?每次它更改数据创建的参数时,请一遍又一遍地返回,重新生成训练数据,将其输入模型,对其进行训练,对其进行调整,直到获得最佳结果。

1 个答案:

答案 0 :(得分:0)

您所说的“偏见”实际上是您拥有的最大力量。您可以包括对系统的了解。坦率地说,机器学习(包括辉煌的深度学习)是愚蠢。尽管它可以为您找到功能,但是很难解释这些功能。

此外,尤其是深度学习,还具有记忆(而不是学习!)模式的强大能力,从而很容易过分适应训练数据。要使机器学习模型在现实世界中得到很好的概括,就很难了。

在大多数成功的方法中(与Kagglers大师核对),人们可以创建特征。在您的情况下,我可能想计算力的大小和矢量。根据场景的类型,我可能将(纬度,经度)转换为距特定点的距离(例如,原点/激活点,或者每隔1分钟建立一次),或者使用不同的坐标系。

由于您的数据是按时间序列排列的,因此我可能会使用一些非常适合您可以理解和排除故障的时间序列建模的方法。在大多数情况下,CNN等通常是您的最后选择。

如果您确实想实现自动化,请检查例如Auto Kerasludwig。在学习最重要的功能时,我建议您使用gradient boosting(GBDT)。

我建议阅读this article from AirBnB,以便更深入地研究构建此类系统和功能工程的过程。