2008-09-19 100 views
4
  • 我想從具有許多變量的過程中獲得最大性能,其中許多變量不能被控制。
  • 我不能運行上千次實驗,所以它會是很好,如果我可以運行數百次實驗和
    • 改變許多可控參數
    • 收集顯示性能
    • 許多參數數據「正確」儘可能多地,這些參數我無法控制
    • 梳理出「最好的」值的那些東西,我可以控制,並從頭再來

感覺這就是所謂的數據挖掘,你正在瀏覽大量的數據,這些數據似乎並不直接相關,但是經過一番努力卻顯示出相關性。如何從非實驗數據(數據挖掘?)獲得科學結果

那麼......我從哪裏開始研究算法,概念,這類事情的理論?即使是用於搜索的相關術語也是有用的。

背景:我喜歡做超級馬拉松騎自行車,並保持每次騎行的日誌。我想保留更多的數據,並且在成百上千的遊樂設施能夠提取關於我如何執行的信息之後。但是,一切都會變化 - 路線,環境(溫度,壓力,嗡嗡聲,太陽負荷,風,降水量等),燃料,姿態,體重,水負荷等等等等。我可以控制一些事情,但運行相同的路線20次,以測試一個新的燃料體制只會令人沮喪,並需要數年時間來執行我想要做的所有實驗。但是,我可以記錄所有這些事情(更多)(自行車FTW遙測)。

回答

2

這聽起來像你想要做一些regression analysis。你當然有足夠的數據!


迴歸分析是一種非常常見的統計和科學建模技術。 (可以認爲統計學是迴歸分析的藝術和科學。)有許多統計軟件包用於執行您需要的計算。 (我推薦一個,但我已經過時了幾年。)

數據挖掘得到了一個壞名字,因爲人們往往認爲相關性等於因果關係。我發現一個好的方法是從你知道有影響的變量開始,並首先在它們周圍建立一個統計模型。所以你知道,風速,重量和爬升能影響你的旅行速度,統計軟件可以把你的數據集和計算出這些因素之間的相關性。這會給你一個統計模型或線性方程:

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

當你探索新的變量,你將能夠看到如果模型是通過比較喜歡R平方擬合度優度提高與否。所以你可以檢查溫度或時間是否增加了模型的任何東西。

您可能想要對您的數據應用轉換。例如,你可能會發現你在寒冷的日子裏表現更好。但真正寒冷的日子和真正炎熱的日子可能會損害業績。在這種情況下,您可以將溫度分配給垃圾箱或segments:< 0°C; 0°C至40°C; > 40°C,或其他一些。關鍵在於以一種與現實世界中發生的理性模型相匹配的方式來轉換數據,而不僅僅是數據本身。


如果有人認爲這不是編程相關的主題,請注意,您可以使用這些相同的技術來分析系統性能。

1

我在過去曾使用過Perl模塊Statistics::Regression來解決相似的問題。但是,請注意,迴歸分析絕對是一門藝術。正如Perl模塊中的警告所說,如果你沒有學會適當的數學方法,那麼你就沒有任何意義。

2

有了這麼多的變量,你有太多的尺寸,你可能想看看Principal Component Analysis。它需要回歸分析中的一些「藝術」,並讓數​​據爲自己說話。鏈接底部會顯示一些進行這種分析的軟件。