2011-09-14 56 views
4

我已經開始學習數據挖掘,並希望在C++/Java中創建一個小型項目,使我能夠利用數據庫,從twitter發佈數據,然後發佈一組特定的結果(例如,所有新聞項目在飼料)。我想知道如何去解決它?我應該從哪裏開始?從數據挖掘開始

回答

4

這是一個非常廣泛的問題,所以很難回答。以下是需要考慮的一些事項:

  1. 您打算何時獲取數據?你提到Twitter,但你仍然需要以某種方式收集數據。可能有用於收聽推特流的圖書館,或者如果有人正在銷售它,你可能會購買這些數據。

  2. 你打算如何存儲數據?取決於你有多少以及你打算如何處理它,傳統的關係數據庫可能最適合或不適合。使用支持直接運行mapreduce作業的東西可能會更好。

基礎上回答這些問題,編程語言和庫的選擇上會更容易做。

如果你真的設置了Java,那麼我認爲Hadoop羣集可能是你想要開始的。它支持使用Java編寫mapreduce作業,並可作爲其他系統(如HBase,一種面向列的數據存儲)的有效平臺。

如果您的數據將會相當規律(即從一個記錄到下一個記錄的結構變化不大),也許Hive會更合適。通過Hive,您可以編寫類似SQL的查詢,只給出數據文件作爲輸入。我從來沒有使用過Mahout,但我知道它的機器學習功能適合數據挖掘任務。

這些只是想到一些想法。這裏有很多選擇,在它們之間進行選擇與你試圖解決的特定問題以及你自己的個人品味是一樣的。

+0

但是我能在一臺沒有hdfs的PC上運行hadoop嗎? –

+0

是的,您可以在單個節點上運行hadoop以開始使用。我不確定它是否可以從本地文件系統讀取,或者您是否必須使用HDFS。自從我使用它以來已經很長時間了。該社區是非常有幫助的,所以如果你想提出具體問題,請註冊郵件列表。 – jimbojw

0

數據挖掘是廣泛的領域,有許多不同的技術;分類,聚類,關聯和模式挖掘,異常值檢測等。

你應該先決定你想要做什麼,然後決定你需要的最佳算法。

如果您不熟悉數據挖掘,那麼我建議您閱讀Tan,Steinbach和Kumar撰寫的「數據挖掘簡介」等書籍。

1

很好的參考因爲你是

AI course taught by people who actually know the subjectWeka websiteMachine Learning datasetsEven more datasetsFramework for supporting the mining of larger datasets

第一個鏈接是由Peter Norvig和Google研究總監Sebastian Thrun和Stanley的創作者(自主汽車)分別講授的AI的一個很好的介紹。

第二個鏈接,你讓你到Weka網站。下載該軟件 - 這非常直觀 - 並獲得本書。確保你理解了所有的概念:什麼是數據挖掘,什麼是機器學習,什麼是最常見的任務,以及它們背後的原理是什麼。在示例中玩很多 - 軟件包會捆綁一些數據集 - 直到您理解生成結果的內容。

接下來,轉到真實的數據集並與他們一起玩。在處理大量數據集時,您可能會面臨Weka的幾個性能問題 - 根據我的經驗可以看出,這更像是一種學習工具。因此,我建議你看看第五個鏈接,它會讓你訪問Apache Mahout網站。

然而,這不是一個簡單的話題,而是非常有趣。

1

我可以告訴你我是怎麼做到的。

1)我使用twitter4j獲得了數據。

2)我使用JUNG分析了數據。 你必須定義一個表示邊的類和一個表示頂點的類。 這些類將包含邊和頂點的屬性。 3)然後,有一個簡單的函數來添加邊g.addedge(V1,V2,edgeFromV1ToV2)或添加頂點g.addVertex(V)。

定義邊或頂點的類很容易創建。舉個例子:

'公共類MyEdge {

int Id; 

}`

這同樣適用於頂點完成。 今天我會用R來做,但是如果你不想學習一門新的編程語言,只需要導入一個java庫的jung。

0

我想建議你使用python或R進行數據挖掘過程。使用java或c進行工作,在某種意義上說有點困難,你需要做很多編碼

+0

它喜歡更多的評論,而不是回答 – Alexan