在處理機器學(xué)習(xí)算法時,因為數(shù)據(jù)庫太大而無法放置進內(nèi)存的情況很常見。
十年的惠水網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整惠水建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)公司從事“惠水網(wǎng)站設(shè)計”,“惠水網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
這就引出了如下的問題:
如何加載我的大容量數(shù)據(jù)文件?
當(dāng)因我嘗試運行數(shù)據(jù)集算法而導(dǎo)致程序崩潰時,我該怎么辦?
你能幫我解決內(nèi)存不足的問題嗎?
在這篇文章中, 我想找出一些你會考慮的一些建議。
分配更多內(nèi)存
某些機器學(xué)習(xí)工具或數(shù)據(jù)庫可能受到默認內(nèi)存配置的限制。檢查是否可以重新配置工具或數(shù)據(jù)庫來使其分配到更多內(nèi)存。Weka 是一個很好的例子, 在該示例中, 您可以在啟動應(yīng)用程序時將內(nèi)存增加為參數(shù)。
使用較小的樣本
是否確實需要處理所有數(shù)據(jù)?隨機抽取數(shù)據(jù)的樣本, 例如前1000行或10萬列。在對所有數(shù)據(jù) (使用漸進式數(shù)據(jù)加載技術(shù)) 擬合最終模型之前, 請使用這個較小的示例來解決問題。
我認為這是一個很好的做法, 在一般的機器學(xué)習(xí)中,這種方式可以讓你快速得到抽查的算法和周轉(zhuǎn)的結(jié)果。您還可以考慮,對用于匹配一個算法的數(shù)據(jù)量進行靈敏度分析, 而不是用模型技能。也許有一個遞減反饋的自然點, 讓你可以使用其作為你小樣本的一個合適的大小值。
使用具有更多內(nèi)存的計算機
你必須在你的電腦上工作嗎?也許你可以訪問一臺更大的計算機, 是以你電腦的內(nèi)存的數(shù)量級倍數(shù)存在的那種。例如,在云服務(wù)上租用大內(nèi)存服務(wù)器就是一個好的選擇是;例如亞馬遜 Web 服務(wù), 它提供的機器的 RAM 為每小時還不到一美元。我發(fā)現(xiàn)這種方法在過去非常有用。
更改數(shù)據(jù)格式
數(shù)據(jù)是否存儲在原始 ASCII 文本中, 如 CSV 文件?也許您可以通過使用其他數(shù)據(jù)格式,來加快數(shù)據(jù)加載并且降低內(nèi)存的使用率。二進制格式就是一個很好的例子, 如 GRIB、NetCDF 或HDF等格式。有許多命令行工具可用于將一種數(shù)據(jù)格式轉(zhuǎn)換為另一種不要求將整個數(shù)據(jù)集加載到內(nèi)存的格式的方法。使用另一種格式可以使您將數(shù)據(jù)存儲在更緊湊的窗體中, 借此節(jié)省內(nèi)存, 如2字節(jié)的整數(shù)或4字節(jié)的浮動。
流數(shù)據(jù)或使用漸進加載
所有的數(shù)據(jù)都需要同時存儲在內(nèi)存中嗎?也許您可以使用代碼或庫,將數(shù)據(jù)流逐步加載到內(nèi)存中以進行使用。這可能需要使用優(yōu)化技術(shù) (如隨機梯度下降) 來迭代學(xué)習(xí)的算法, 而不是要求內(nèi)存中所有數(shù)據(jù)都執(zhí)行矩陣操作的算法, 如某些線性和邏輯回歸的實現(xiàn)。例如, Keras 深層學(xué)習(xí)庫提供此功能來逐步加載圖像文件, 并稱為flow_from_directory。另一個例子是可以在大塊中加載大的 CSV 文件的熊貓庫(Pandas)。
使用關(guān)聯(lián)數(shù)據(jù)庫
關(guān)系數(shù)據(jù)庫提供了一種存儲和訪問非常大的數(shù)據(jù)集的標(biāo)準方法。從內(nèi)部來看,存儲在磁盤上的數(shù)據(jù)可以逐步加載, 并可以使用標(biāo)準查詢語言 (SQL) 來進行查詢??梢允褂弥T如MySQL或Postgres這樣的免費開源數(shù)據(jù)庫工具, 而且大多數(shù) (也許是所有?) 編程語言和許多機器學(xué)習(xí)工具都可以直接連接到關(guān)聯(lián)數(shù)據(jù)庫。您還可以使用輕量級方法, 如SQLite。我在過去發(fā)現(xiàn)這種方法對于非常大的表格數(shù)據(jù)集非常有效。同樣, 您可能需要使用可以處理迭代學(xué)習(xí)的算法。
使用大型數(shù)據(jù)平臺
在某些情況下, 您可能需要求助于一個大的數(shù)據(jù)平臺。這是一個為了處理非常大的數(shù)據(jù)集而設(shè)計的平臺, 它允許您在上面使用數(shù)據(jù)轉(zhuǎn)換和機器學(xué)習(xí)算法。兩個好例子是用Mahout機器學(xué)習(xí)庫的Hadoop以及用MLLib庫的Spark。我相信當(dāng)你已經(jīng)用盡上述方法,這是會是解決這個問題的終極方法。然而, 在一些數(shù)據(jù)集非常非常大的情況下,之前的方法并不會是這些數(shù)據(jù)集縮短。
新聞名稱:7中方法處理ML中大型數(shù)據(jù)加載問題
文章源于:http://jinyejixie.com/article34/gpiise.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、自適應(yīng)網(wǎng)站、品牌網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、外貿(mào)網(wǎng)站建設(shè)、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)