4
  • 我想从具有许多变量的过程中获得最大性能,其中许多变量是无法控制的。
  • 我不能运行数千个实验,所以如果我能运行数百个实验和
    • 改变许多可控参数
    • 收集有关表明性能的许多参数的数据
    • 对于那些我无法控制的参数,尽可能“正确”
    • 为那些我可以控制的事情梳理出“最佳”值,然后重新开始

感觉这将被称为数据挖掘,您正在处理大量数据,这些数据似乎并没有立即相关,但经过一些努力后确实显示出相关性。

所以...我从哪里开始研究这类事情的算法、概念和理论?甚至出于搜索目的的相关术语也会很有用。

背景:我喜欢做超级马拉松骑行,并记录每次骑行。我想保留更多数据,并且在数百次骑行之后能够提取有关我的表现的信息。

然而,一切都各不相同——路线、环境(温度、压力、嗡嗡声、太阳负荷、风、降水等)、燃料、姿态、重量、水负荷等等等。我可以控制一些事情,但是在同一条路线上跑 20 次来测试一种新的燃料状态只会令人沮丧,并且需要数年时间才能完成我想做的所有实验。但是,我可以记录所有这些以及更多内容(自行车 FTW 上的遥测)。

4

3 回答 3

2

听起来你想做一些回归分析。你当然有大量的数据!


回归分析是统计学和科学中极为常见的建模技术。(可以说统计是回归分析的艺术和科学。)有许多统计软件包可以进行您需要的计算。(我会推荐一个,但我已经过时了。)

数据挖掘的名声不好,因为人们常常认为相关性等于因果关系。我发现一个好的技术是从你知道有影响的变量开始,然后围绕它们建立一个统计模型。所以你知道风、重量和爬升会影响你的旅行速度,统计软件可以获取你的数据集并计算这些因素之间的相关性。这会给你一个统计模型或线性方程:

speed = x*weight + y*wind + z*climb + constant

当您探索新变量时,您将能够通过比较拟合优度(如 R 平方)来查看模型是否得到改进。因此,您可以检查温度或一天中的时间是否对模型添加了任何内容。

您可能希望对数据应用转换。例如,您可能会发现自己在寒冷的日子里表现更好。但真正寒冷的日子和真正炎热的日子可能会影响性能。在这种情况下,您可以将温度分配给箱或:< 0°C;0°C 至 40°C;> 40°C,或一些这样的。关键是以一种与现实世界中正在发生的事情的合理模型相匹配的方式转换数据,而不仅仅是数据本身。


如果有人认为这不是与编程相关的主题,请注意您可以使用这些相同的技术来分析系统性能。

于 2008-09-19T22:03:01.820 回答
2

With that many variables you have too many dimensions and you may want to look at Principal Component Analysis. It takes some of the "art" out of regression analysis and lets the data speak for itself. Some software to do that sort of analysis is shown at the bottom of the link.

于 2008-09-19T22:52:43.620 回答
1

I have used the Perl module Statistics::Regression for somewhat similar problems in the past. Be warned, however, that regression analysis is definitely an art. As the warning in the Perl module says, it won't make sense to you if you haven't learned the appropriate math.

于 2008-09-19T22:47:46.703 回答