【问题标题】:Applying machine learning to training data parameters将机器学习应用于训练数据参数
【发布时间】:2019-07-15 04:11:55
【问题描述】:

我是机器学习的新手,我知道有些参数和选择适用于您附加到特定输入集的模型,这些输入可以调整/优化,但那些输入显然与您通过以对有意义的方式对您拥有的任何源数据进行切片和切块而生成的字段相关联。但是,如果您决定对源数据以及因此训练数据进行建模和分割的方式不是最优的怎么办?是否有方法或工具可以将机器学习的力量不仅扩展到模型,还包括最初创建训练数据的方式?

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

因此,您削减了数据,并随时更正您的操作方式,但这与主要问题不太相关:

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

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

【问题讨论】:

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


    【解决方案1】:

    你所谓的偏见其实是你最大的优势。您可以包括您对系统的了解。机器学习,包括光荣的深度学习,说白了就是愚蠢。虽然它可以为您找出特征,但解释这些特征会很困难。

    此外,尤其是深度学习,它具有很强的记忆(而不是学习!)模式的能力,因此很容易过度拟合训练数据。制作在现实世界中泛化良好的机器学习模型非常困难。

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

    由于您的数据采用时间序列,我可能会使用非常适合您可以理解和排除故障的时间序列建模的东西。在大多数情况下,CNN 等通常是您的最后手段。

    如果您真的想自动化它,请检查例如Auto Kerasludwig。在了解哪些功能最重要时,我建议使用 gradient boosting (GBDT)。

    我建议阅读 this article from AirBnB,它可以更深入地了解构建此类系统和特征工程的过程。

    【讨论】:

      猜你喜欢
      • 2017-06-25
      • 2017-04-06
      • 2020-06-15
      • 2020-02-21
      • 2017-10-09
      • 2020-02-03
      • 1970-01-01
      • 2014-09-05
      • 2014-12-27
      相关资源
      最近更新 更多