自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在機器學(xué)習(xí)中處理大型數(shù)據(jù)集

人工智能 機器學(xué)習(xí)
如何在機器學(xué)習(xí)中處理大型數(shù)據(jù)集,不是大數(shù)據(jù)…。數(shù)據(jù)集是所有共享一個公共屬性的實例的集合。 機器學(xué)習(xí)模型通常將包含一些不同的數(shù)據(jù)集,每個數(shù)據(jù)集用于履行系統(tǒng)中的各種角色。

 如何在機器學(xué)習(xí)中處理大型數(shù)據(jù)集

不是大數(shù)據(jù)…。

 

如何在機器學(xué)習(xí)中處理大型數(shù)據(jù)集

數(shù)據(jù)集是所有共享一個公共屬性的實例的集合。 機器學(xué)習(xí)模型通常將包含一些不同的數(shù)據(jù)集,每個數(shù)據(jù)集用于履行系統(tǒng)中的各種角色。

當(dāng)任何經(jīng)驗豐富的數(shù)據(jù)科學(xué)家處理與ML相關(guān)的項目時,將完成60%的工作來分析數(shù)據(jù)集,我們稱之為探索性數(shù)據(jù)分析(EDA)。 這意味著數(shù)據(jù)在機器學(xué)習(xí)中起著重要作用。 在現(xiàn)實世界中,我們需要處理大量數(shù)據(jù),這使得使用普通大熊貓進行計算和讀取數(shù)據(jù)似乎不可行,這似乎需要花費更多時間,并且我們的工作資源通常有限。 為了使其可行,許多AI研究人員提出了一種解決方案,以識別處理大型數(shù)據(jù)集的不同技術(shù)和方式。

現(xiàn)在,我將通過一些示例來分享以下技術(shù)。 在這里為實際實施,我使用的是google Colab,它的RAM容量為12.72 GB。

讓我們考慮使用隨機數(shù)從0(含)到10(不含)創(chuàng)建的數(shù)據(jù)集,該數(shù)據(jù)集具有1000000行和400列。

執(zhí)行上述代碼的CPU時間和掛墻時間如下:

 

如何在機器學(xué)習(xí)中處理大型數(shù)據(jù)集

 

現(xiàn)在,讓我們將此數(shù)據(jù)幀轉(zhuǎn)換為CSV文件。

執(zhí)行上述代碼的CPU時間和掛墻時間如下:

 

如何在機器學(xué)習(xí)中處理大型數(shù)據(jù)集

 

現(xiàn)在,使用熊貓加載現(xiàn)在生成的數(shù)據(jù)集(將近763 MB),然后看看會發(fā)生什么。

當(dāng)您執(zhí)行上述代碼時,由于RAM的不可用,筆記本電腦將崩潰。 在這里,我采用了一個相對較小的數(shù)據(jù)集,大小約為763MB,然后考慮需要處理大量數(shù)據(jù)的情況。 解決該問題的下一個計劃是什么?

處理大型數(shù)據(jù)集的技術(shù):

1.以塊大小讀取CSV文件:

 

如何在機器學(xué)習(xí)中處理大型數(shù)據(jù)集

 

當(dāng)我們通過指定chunk_size讀取大型CSV文件時,原始數(shù)據(jù)幀將被分解成塊并存儲在pandas解析器對象中。 我們以這種方式迭代對象,并連接起來以形成花費較少時間的原始數(shù)據(jù)幀。

在上面生成的CSV文件中,此文件包含1000000行和400列,因此,如果我們讀取100000行中的CSV文件作為塊大小,則

執(zhí)行上述代碼的CPU時間和掛墻時間如下:

 

如何在機器學(xué)習(xí)中處理大型數(shù)據(jù)集

 

現(xiàn)在我們需要迭代列表中的塊,然后需要將它們存儲在列表中并連接起來以形成完整的數(shù)據(jù)集。

執(zhí)行上述代碼的CPU時間和掛墻時間如下:

 

如何在機器學(xué)習(xí)中處理大型數(shù)據(jù)集

 

我們可以觀察到閱讀時間的大幅改善。 這樣,我們可以讀取大型數(shù)據(jù)集并減少讀取時間,有時還可以避免系統(tǒng)崩潰。

2.更改數(shù)據(jù)類型的大?。?/strong>

如果要在對大型數(shù)據(jù)集執(zhí)行任何操作時提高性能,則需要花費更多時間來避免此原因,我們可以更改某些列的數(shù)據(jù)類型的大小,例如(int64→int32),(float64→float32)以減少空間 它存儲并保存在CSV文件中,以供進一步實施。

例如,如果我們在分塊后將其應(yīng)用于數(shù)據(jù)幀,并比較文件大小減少到一半之前和之后的內(nèi)存使用情況,并且內(nèi)存使用減少到一半,這最終導(dǎo)致CPU時間減少

數(shù)據(jù)類型轉(zhuǎn)換前后的內(nèi)存使用情況如下:

 

如何在機器學(xué)習(xí)中處理大型數(shù)據(jù)集

 

如何在機器學(xué)習(xí)中處理大型數(shù)據(jù)集

在這里,我們可以清楚地觀察到3 GB是數(shù)據(jù)類型轉(zhuǎn)換之前的內(nèi)存使用量,而1.5 GB是數(shù)據(jù)類型轉(zhuǎn)換之后的內(nèi)存使用量。 如果我們通過計算數(shù)據(jù)幀前后的平均值來計算性能,那么CPU時間將減少,我們的目標(biāo)就可以實現(xiàn)。

3.從數(shù)據(jù)框中刪除不需要的列:

我們可以從數(shù)據(jù)集中刪除不需要的列,以便減少加載的數(shù)據(jù)幀的內(nèi)存使用量,這可以提高我們在數(shù)據(jù)集中執(zhí)行不同操作時的CPU性能。

4.更改數(shù)據(jù)格式:

您的數(shù)據(jù)是否以CSV文件之類的原始ASCII文本存儲?

也許您可以通過使用另一種數(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ù)。

5.使用正確的數(shù)據(jù)類型減少對象大?。?/strong>

通常,可以通過將數(shù)據(jù)幀轉(zhuǎn)換為正確的數(shù)據(jù)類型來減少數(shù)據(jù)幀的內(nèi)存使用量。 幾乎所有數(shù)據(jù)集都包含對象數(shù)據(jù)類型,該對象數(shù)據(jù)類型通常為字符串格式,這對內(nèi)存效率不高。 當(dāng)您考慮日期,類別特征(如區(qū)域,城市,地名)時,它們會占用更多的內(nèi)存,因此,如果將它們轉(zhuǎn)換為相應(yīng)的數(shù)據(jù)類型(如DateTime),則類別將使內(nèi)存使用量比以前減少10倍以上 。

6.使用像Vaex這樣的快速加載庫:

Vaex是一個高性能Python庫,用于懶惰的Out-of-Core DataFrame(類似于Pandas),以可視化方式瀏覽大型表格數(shù)據(jù)集。 它以每秒超過十億(10 ^ 9)個樣本/行的速度在N維網(wǎng)格上計算統(tǒng)計信息,例如平均值,總和,計數(shù),標(biāo)準(zhǔn)差等。 可視化使用直方圖,密度圖和3d體積渲染完成,從而允許交互式探索大數(shù)據(jù)。 Vaex使用內(nèi)存映射,零內(nèi)存復(fù)制策略和惰性計算來獲得優(yōu)質(zhì)性能(不浪費內(nèi)存)。

現(xiàn)在,讓我們在上面隨機生成的數(shù)據(jù)集中實現(xiàn)vaex庫,以觀察性能。

1.首先,我們需要根據(jù)您使用的操作系統(tǒng),使用命令提示符/ shell安裝vaex庫。

2.然后,我們需要使用vaex庫將CSV文件轉(zhuǎn)換為hdf5文件。

執(zhí)行上述代碼后,將在您的工作目錄中生成一個dataset.csv.hdf5文件。 數(shù)據(jù)類型轉(zhuǎn)換前后的內(nèi)存使用情況如下:

 

如何在機器學(xué)習(xí)中處理大型數(shù)據(jù)集

 

可以看出,將CSV轉(zhuǎn)換為hdf5文件花費了將近39秒,相對于文件大小而言,時間要短一些。

3.使用vaex讀取hdf5文件:-

現(xiàn)在我們需要通過vaex庫中的open函數(shù)打開hdf5文件。

觀察完上面的代碼后,如果我們看到輸出,則看似花了697毫秒來讀取hdf5文件,由此我們可以了解讀取3GB hdf5文件的執(zhí)行速度。 這是vaex庫的實際優(yōu)勢。

 

如何在機器學(xué)習(xí)中處理大型數(shù)據(jù)集

 

通過使用vaex,我們可以對大型數(shù)據(jù)幀執(zhí)行不同的操作,例如

  • 表達系統(tǒng)
  • 超出核心數(shù)據(jù)幀
  • 快速分組/聚合
  • 快速高效的加入

如果您想探索有關(guān)vaex庫的更多信息,請點擊此處。

結(jié)論:

通過這種方式,我們可以在機器學(xué)習(xí)中處理大型數(shù)據(jù)集時遵循這些技術(shù)。

如果您喜歡這篇文章,請閱讀這篇文章。如果您想在linkedin上與我聯(lián)系,請點擊下面的鏈接。

 

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2022-09-03 23:58:52

機器學(xué)習(xí)Python數(shù)據(jù)集

2024-11-26 08:09:40

2019-02-25 08:35:22

機器學(xué)習(xí)數(shù)據(jù)模型

2011-03-21 12:41:41

JavaScript

2025-01-21 15:20:14

2019-03-21 16:27:21

數(shù)據(jù)開發(fā)機器學(xué)習(xí)

2021-12-13 09:14:06

清單管理數(shù)據(jù)集

2019-06-19 09:13:29

機器學(xué)習(xí)中數(shù)據(jù)集深度學(xué)習(xí)

2024-10-18 07:10:43

2021-02-22 11:44:43

機器學(xué)習(xí)數(shù)據(jù)泄露學(xué)習(xí)

2020-07-15 13:51:48

TensorFlow數(shù)據(jù)機器學(xué)習(xí)

2021-09-03 09:06:42

代碼時間開發(fā)

2022-04-01 15:39:13

機器學(xué)習(xí)讓孩子們軟件交付

2023-04-28 08:00:00

機器學(xué)習(xí)數(shù)據(jù)集

2021-03-04 12:40:25

機器學(xué)習(xí)人工智能爬坡測試

2021-03-12 11:00:14

機器學(xué)習(xí)人工智能爬坡測試

2020-07-08 15:43:26

數(shù)據(jù)機器學(xué)習(xí)提取

2018-06-26 15:40:49

Tensorflow.MNIST圖像數(shù)據(jù)

2025-02-05 10:02:03

Locust測試異常處理

2021-02-26 15:10:00

前端React組件交互
點贊
收藏

51CTO技術(shù)棧公眾號