2012-03-10 64 views
2

「批量處理」我的意思是一個靜態數據集事實(如在一個CSV)一次處理,以提取知識。 「在線」時,它使用一個直播支持存儲:在事件發生時添加(「X購買Y」),並在此實時數據上發生查詢(「您將推薦給正在查看y的人?「)。在線(而不是批量處理)數據挖掘軟件包

我有(錯)實時使用的術語,但我意味着結果必須在一個固定的時間內。 ('''編輯:實時替換在線以上''')


我記住了一個使用實時數據的推薦引擎。然而,我遇到的所有在線資源(如SO問題)都使在實時和批量處理數據挖掘包之間沒有區別。我只好逐個搜索:

  • Carrot2從Lucene的/ Solr的以及其他現場數據集(聯機)
  • Knime其不計劃對靜態文件執行(散裝)
  • 亨利馬烏它運行在Hadoop讀取(和預凝膠型Giraph未來)(在線?)
  • 的商業包裝與卡桑德拉(在線整合?)

什麼是在線數據挖掘軟件包?

有沒有理由爲什麼文獻沒有區分在線和批量處理軟件包?或者是所有的實際數據挖掘實際上是批量操作?

+0

我編輯了你的文章,因爲適當的術語恕我直言,是「在線操作」(而不是工作在數據的副本上)。 – 2012-03-11 11:09:09

回答

2

對於某些算法,有在線版本可用。例如,對於本地異常因素LOF,有一個在線變體。我相信也有K-means的在線變體(實際上,原始的MacQueen版本可以被視爲「在線」,儘管大多數人通過重複它直到收斂來將其變成離線版本),但是在下面看到問題與k參數。

但是,在線操作通常會帶來顯着的性能成本。直到每小時以快照方式運行完整算法的速度更快,而不是不斷更新結果。想想互聯網搜索引擎。大多數大型搜索引擎仍然不允許「在線」查詢,而是查詢最近建立的索引,可能在一天或更久之前。

另外,在線操作還需要大量額外的工作。計算距離矩陣很容易,通過添加和刪除列來在線更新它更加困難,並且同步所有相關結果。通常,大多數數據挖掘結果太複雜,無法執行此操作。例如,計算數據流的平均值很容易。但'''通常沒有已知的解決方案來更新結果而不重新運行 - 昂貴的過程'''。在其他情況下,您甚至需要更改算法參數。所以在某個時候,可能會形成一個新的羣集。然而,k-means並不意味着會出現新的集羣。所以基本上,你不能只寫一個在線版本的k-means。這將是一個不同的算法,因爲它需要動態修改輸入參數「k」。

因此,通常算法已經在線或離線。而一個軟件包將無法將轉爲脫機算法轉爲在線算法。

-1

在線數據挖掘算法意味着他們實時計算結果,通常意味着算法是增量式的。也就是說,每次看到新的訓練實例時,模型都會更新,並且不需要使用批處理算法進行定期再訓練。 Weka等許多機器學習庫提供批量算法的增量版本。還請檢查moa項目和spark streaming。儘管大多數「傳統」ML算法不能在沒有基礎架構和計算優化的在線模式下工作,但文獻確實對這兩者進行了區分。

+0

關於堆棧溢出的離線資源或工具推薦請求是無關緊要的。如果你回答它們,你特別強調了Stack Overflow是回答這些問題的好地方。不是這樣。即使你知道一個很好的答案,也不要回答這些問題,因爲大多數答案都會被高度評價(「我個人喜歡......」)。您可以打開關於該問題的標誌對話,並在** off-topic **類別下或[help/on-topic]中查看完整的原因。你甚至不應該在評論中回答,因爲效果與實際答案類似。 – 2015-10-13 16:03:17

+0

我回答了問題「什麼是在線數據挖掘軟件包?」和「是否有文獻沒有區分在線和批量處理軟件包的原因?」 。這個問題被標記爲+2,所以它很重要。如果你對這個問題有疑問,你爲什麼要懲罰答案? – 2015-10-14 09:25:35

+0

無論您個人對Stack Overflow應該是什麼樣的觀點以及想要塑造它的願望,只有擁有正確能力的人才有權對Stack Overflow問題採取行動。似乎你只有聲望,但(根據你的個人資料)而不是能力。 – 2015-10-14 09:43:19