Python大規模機器學習》—1.1.3使用Python進行向上擴展">《Python大規模機器學習》—1.1.3使用Python進行向上擴展
720
2025-04-02
2.2????流化源數據
當你有一個傳輸數據的生成過程時,某些數據實際上正在流經你的計算機,你能動態處理或丟棄這些數據,但是除非你將其存儲到某個數據存儲庫中,否則之后無法再訪問這些數據。這就像從一條流動的河水中取水一樣——河流一直在流動,但你不能同時過濾和處理所有河水。這與一次處理所有數據完全不同,后者更像是把所有的水都放在大壩里(類似于處理內存中的所有數據)。
作為數據流的一個示例,我們可以引用傳感器即時產生的數據流,或者更簡單地引用Twitter的流水線數據流。一般而言,數據流主要來源如下:
測量溫度、壓力和濕度的環境傳感器
記錄位置(緯度/經度)的GPS跟蹤傳感器
記錄圖像數據的衛星
監視視頻和聲音記錄
網絡流量
但是你通常不會處理真實的數據流,而是會處理存儲在存儲庫或文件中的靜態記錄。在這種情況下,可根據某些標準重新創建數據流,例如,一次順序或隨機提取單個記錄。例如,如果我們的數據包含在TXT或CSV文件中,只需每次獲取文件的一行并將其傳遞給學習算法。
在本章和下一章的示例中,我們將處理存儲在本地硬盤上的文件,并會為提取數據流準備相應的Python代碼。我們不使用無意義的數據集,但也不會用太多數據進行測試和演示。
2.2.1????處理真實數據集
1987年加州大學歐文分校(UCI)就開始建立UCI機器學習庫,這是一個大型數據集庫,被機器學習社區用于驗證機器學習算法。編寫本書時,該存儲庫大約包含350個來自不同領域和用于不同用途的數據集,從有監督回歸和分類到無監督任務等。訪問https://Archive.ics.uci.edu/ml可查看可用數據集。
本書選擇了部分數據集(如表2-1所示),這些數據集在整本書中非常有用,而對你來說,用一臺不尋常但仍可管理2GB內存的計算機處理大量數據非常具有挑戰性。
表2-1參考數據集
若要從UCI存儲庫下載和使用數據集,必須轉到該數據集的專用頁面,并按照標題“Download:Data Folder”下方的鏈接進行操作。本書給出部分自動下載數據腳本,可放在你的Python使用目錄中,這樣會使數據訪問更加容易。
下面是給出的部分函數,當從UCI下載任意數據集時,在相應部分調用這些函數即可:
下載示例代碼
下載代碼包的詳細步驟如前所述,請看一看。本書代碼包也托管在GitHub上,網址是
https://github.com/PacktPublishing/Large-Scale-Machine-Learning-With-Python。
大量書籍和視頻目錄中的其他代碼包可在https://github.com/PacktPublishing/查看!
這些函數只是圍繞各種包建立的打包器,可以處理諸如tarfile、zipfile和gzip之類的壓縮數據。文件使用urllib2模塊打開,這將生成遠程系統句柄,并允許從IO模塊(專門用于流處理的模塊,參見https://docs.Python.org/2/library/io.html)連續傳輸數據并以字符串形式(StringIO)或二進制形式(BytesIO)存儲到內存。之后,可以用專門的函數像處理文件一樣訪問這些數據。
這4個函數能輕松幫助你快速下載數據集,無論數據被壓縮、粘貼、解壓,或者僅僅是矩陣形式的純文本,這樣有助于避免手工下載和提取操作的麻煩。
Python 機器學習
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。