2017-07-08 39 views
1

我有一個問題,它與現實世界中的機器學習應用有關。這可能聽起來很愚蠢。爲機器學習提供數據的替代方法(除使用CSV文件外)

我一直在自學機器學習了一段時間,大部分練習都是使用csv文件作爲數據源(處理過的和原始的)。我想問問除了導入csv文件之外,還有其他什麼方法可以爲機器學習提供/提供數據?

示例:實時流式傳輸Facebook/Twitter實時饋送的機器學習數據,而不是收集舊數據並將其存儲到CSV文件中。

回答

2

數據源可以是任何東西。通常,它以CSV或JSON文件形式提供。但是在現實世界中,假設你有像Twitter這樣的網站,就像你提到的那樣,你會將數據存儲在一個理性的數據庫中,比如SQL數據庫,以及一些數據,你會把它們放在一個in - 內存緩存。

你基本上可以利用這兩個來檢索你的數據並處理它。這裏的事情是,當你有太多的數據不適合內存時,你不能真正地查詢所有內容並進行處理,在這種情況下,你將利用一些智能算法來處理數據塊。

關於某些數據庫(如SQL)的好處是,它們爲您提供了一組函數,您可以在SQL腳本中正確調用該函數以有效計算某些數據。例如,您可以在整個表格中獲得一列數據或使用SUM()函數SQL,這可以實現高效且簡單的數據處理

+0

要放入內存高速緩存的數據?這是訓練數據集嗎?假設來自內存訓練數據的機器學習學習模式和關於關係數據庫的數據預測? –

+1

@不好笑訓練數據集是您的算法處理以形成預測函數的數據集。處理它可以是塊,例如你從DB加載100行,處理它們,放棄它們,然後加載另一個100,或者,在一次運行中加載它們,通過加載所有行並在一旦。您將使用哪一個取決於您的算法,但您必須考慮這樣一個事實,即由於編程語言中的變量存儲在RAM中,所以有時您無法查詢所有數據,因爲這些數據可能不適合RAM。 – OverCoder

+1

@不好笑例如'Batch Gradient Descend'需要一次處理所有數據,但是如果您有超大型數據集,那麼您可以使用'Stochastic Gradient Descend',它以塊爲單位處理數據。 – OverCoder