【问题标题】:How to get scientific results from non-experimental data (datamining?)如何从非实验数据中获得科学结果(数据挖掘?)
【发布时间】:2010-09-11 11:36:27
【问题描述】:
  • 我想从具有许多变量的过程中获得最大性能,其中许多变量是无法控制的。
  • 我无法运行数千个实验,所以如果我能运行数百个实验并且
    • 改变许多可控参数
    • 收集有关表明性能的许多参数的数据
    • 对于那些我无法控制的参数,尽可能“正确”
    • 为那些我可以控制的事情找出“最佳”值,然后重新开始

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

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

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

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

【问题讨论】:

    标签: algorithm data-mining


    【解决方案1】:

    听起来你想做一些regression analysis。你肯定有很多数据!


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

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

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

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

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


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

    【讨论】:

      【解决方案2】:

      我过去曾使用过 Perl 模块 Statistics::Regression 来解决一些类似的问题。但是请注意,回归分析绝对是一门艺术。正如 Perl 模块中的警告所说,如果您没有学习适当的数学知识,那对您来说毫无意义。

      【讨论】:

        【解决方案3】:

        有了这么多变量,你的维度太多了,你可能想看看Principal Component Analysis。它从回归分析中汲取了一些“艺术”,让数据自己说话。一些进行此类分析的软件显示在链接的底部。

        【讨论】:

          猜你喜欢
          • 2018-03-29
          • 2019-06-09
          • 2020-03-16
          • 2013-06-24
          • 2011-11-16
          • 2021-03-22
          • 1970-01-01
          • 2016-02-13
          • 2011-02-07
          相关资源
          最近更新 更多