2011-12-24 88 views
6

我目前正在試驗涉及分類模型監督訓練的ML任務。到目前爲止,我已經有了〜5M的訓練實例和〜5M的交叉驗證實例。目前,每個例子都有46個特徵,但是我可能想在不久的將來再生成10個特徵,所以任何解決方案都應該留出一些改進空間。機器學習任務:使用什麼工具?

我的問題是以下幾點:我用什麼工具來解決這個問題?我想使用隨機森林或SVM,但是我擔心後者在我的情況下可能會太慢。我已經考慮過Mahout,但是因爲它似乎需要一定量的配置以及與命令行腳本混雜在一起而轉身離開。我寧願直接針對一些(有據可查的!)庫進行編碼,或者用GUI來定義我的模型。

我還應該指出我正在尋找能夠在Windows上運行的東西(沒有諸如cygwin之類的東西),並且那些能夠很好地與.NET搭配的解決方案非常值得讚賞。

你可以想象,到時候,來了,該代碼將在Cluster Compute Eight Extra Large InstanceAmazon EC2運行,所以任何使用了大量的內存和多核CPU的歡迎。

最後但並非最不重要的,我要指定我的數據集就是密集的(在沒有缺失值/所有列的值對每個向量)

+1

有許多工具可供使用(首先,請參閱KDnuggets上的軟件列表:http://www.kdnuggets.com/software/index.html)。雖然你的問題描述消除了其中的一些,但仍有一些數字可以滿足。我不確定你的意思是「與.NET一起玩好」,但是任何有價值的工具都應該提供模型的報告或源代碼,這些代碼可以很容易地轉換爲.NET代碼。 – Predictor 2011-12-24 12:16:12

+0

感謝您的鏈接,一旦我寫了這個,將盡快檢查出來。至於與.NET的良好配合,這意味着某些具有可編程接口來啓動這項工作,或者甚至是一個.NET庫(或可用的包裝器)的東西比其他東西更好。 – em70 2011-12-24 12:31:03

回答

2

我會建議看隨機梯度下降對於這種規模的一個問題。一個好的工具是VowpalWabbit。在這個尺寸下,您可以使用合理的規格在桌面上運行實驗。唯一的缺點是,我認爲它不是以Windows爲中心的,但儘管我沒有檢查它應該在cygwin上運行。

編輯:開發人員非常感興趣的是讓VowpalWabbit在Windows上運行。截至2013年3月,VowpalWabbit(7.2版)可以在Windows上運行。有幾個高級/可選功能尚未在Windows上實現,其中一個將VowpalWabbit作爲守護程序運行,但似乎將在短期內得到處理。

+1

爲什麼這個特定的工具?有幾十個候選人:是什麼讓這個人超過其他人? – Predictor 2011-12-26 14:00:55

+1

@Predictor,那是我用過的那個,我有經驗的那個,也是我用過的那個。另外,我個人首先提到他需要的技術工具(隨機梯度下降)。另外,首先要提到的是,他可以在筆記本電腦上處理這種規模,並且不需要EC2集羣。 – carlosdc 2011-12-26 14:49:15

+0

我看到這個答案是~1.5歲。 vowpal wabbit已經移植到windows上,並且版本7.x不應該在Windows上構建得很好。 – arielf 2013-03-26 17:51:50

3

我經常在EC2上的R上運行類似的行/特徵數據集(如果您使用的方法可以利用多個cpus,例如,您可以使用16核/ 60 Gb實例類型,包caret)。正如你所提到的,並非所有的學習方法(如SVM)都會在這樣的數據集上表現良好。

在切換到在完整數據集上運行之前,您可能需要考慮使用10%左右的樣本進行快速原型/性能基準測試。

如果你想要非常高的性能,那麼Vowpal Wabbit更適合(但它只支持廣義線性學習器,所以沒有gbmRandom Forest。)此外,大衆不是非常適合Windows。