Machine learning 此任务的机器学习算法?

Machine learning 此任务的机器学习算法?,machine-learning,Machine Learning,尝试编写一些处理此任务的代码: 作为起点,我有大约20个“剖面”(想象一个景观剖面),即大约1000个真实值的一维数组 每个剖面都有一个实际值的期望结果,即“有效高度” 有效高度是某种平均值,但峰的高度、宽度和位置起着特殊的作用 我的目的是从输入数据中进行归纳,以便计算进一步剖面的有效高度 有没有一种机器学习算法或原理能帮上忙?也许多元线性回归就足够了?我可能会结合您所说的哪些功能发挥了最重要的作用,然后在此基础上训练回归。基本上,您需要至少一个对应于每个特征的系数,并且您需要比系数多得多的

尝试编写一些处理此任务的代码:

  • 作为起点,我有大约20个“剖面”(想象一个景观剖面),即大约1000个真实值的一维数组
  • 每个剖面都有一个实际值的期望结果,即“有效高度”
  • 有效高度是某种平均值,但峰的高度、宽度和位置起着特殊的作用
  • 我的目的是从输入数据中进行归纳,以便计算进一步剖面的有效高度

有没有一种机器学习算法或原理能帮上忙?

也许多元线性回归就足够了?

我可能会结合您所说的哪些功能发挥了最重要的作用,然后在此基础上训练回归。基本上,您需要至少一个对应于每个特征的系数,并且您需要比系数多得多的数据点。所以,我会选择两个最大山峰的高度和宽度。您现在已将每个配置文件减少为4个数字。现在做这个技巧:将数据分成5组,每组4个。选择前4组。将所有这些配置文件减少到4个数字,然后使用期望的结果得出回归。训练回归后,在最后4点上尝试你的技巧,看看效果如何。重复此过程5次,每次都保留一组不同的数据。这叫做交叉验证,非常方便


显然,获取更多数据会有所帮助。

原则1:提取最重要的功能,而不是将所有内容都提供给它

正如你所说,“有效高度是某种平均值,但峰的高度、宽度和位置起着特殊的作用。”因此,你有一个强的先验假设,即这些度量对于学习来说是最重要的。如果我是你,我会首先计算这些度量,并将它们作为学习的输入,而不是原始数据

原则2:选择学习算法时,首先要考虑的是线性可分性

假设高度是这些度量的函数,那么您必须考虑函数在多大程度上是线性的。例如,如果函数几乎是线性的,那么一个非常简单的感知器就是完美的。否则,如果它远不是线性的,您可能需要选择一个多层神经网络。如果它远远不是线性的……请转向原则1,检查您是否提取了正确的特征

原则3:更多数据帮助


正如你所说,你有大约20个培训“档案”。总的来说,这还不够。几乎所有的机器学习算法都是为大数据设计的。甚至他们声称他们的算法擅长学习小样本,但通常不会小到20个获取更多数据

为了澄清,您是说有一个未知函数
f
,它接受一个长度为1000的数组(“轮廓”),并产生一个标量输出(“高度”),您正在寻找一个可以学习近似
f
的算法?我对机器学习知之甚少,但我的直觉告诉我,20个训练项目可能不够(除非你能严格限制
f
可以使用的函数类型)。是的,这就是情况。我可能会将输入数组的长度从1000减少到200,但这还是太多了?这是否意味着我应该首先提取一些我怀疑起作用的特征值(多少?),然后将它们放入机器学习算法中,找出如何组合它们?我认为您仍然需要约束
f
。试想一下,有多少可能的函数可以提供20个输出。如果已知
f
是输入的线性组合,则可能是这样。但如果只有20个测试用例,则肯定不会有帮助。不,它根本不是线性组合。据我所见,山峰似乎起着最重要的作用,“山谷”应该被忽略。我玩过一些东西,比如正方形,或者(标称高度-x)的和谐平均值,或者忽略一些最小值。所有这些让我非常接近,但这还不够好,所以我认为机器学习可能会有所帮助。那么,我会求助于一些通用的方法,比如神经元网络。然而,我真的会尝试获得更多的领域知识,以获得更好的启发/解决方案。