使用 MinIO 的 SDK 進行自動化資料準備,以支援機器學習

Mondo 科技 更新 2024-02-29

高效、自動化的資料準備在機器學習中的重要性怎麼強調都不為過,並且經常用熟悉的公理“垃圾進,垃圾出”來概括。這凸顯了資料質量在決定機器學習模型成功與否方面發揮的關鍵作用。

隨著資料集規模和複雜性的增加,對可靠管道的需求變得越來越重要。 這些管道對於確保機器學習模型的質量和準確性是必要的。

對於企業來說,乙個改變遊戲規則的方面是在邊緣開發和部署資料準備管道的能力。 此功能提高了靈活性和可擴充套件性,使機器學習工程師能夠在不同的平台上部署管道 - 從單個硬體到由區域或分支機構管理的資料中心,甚至電信機櫃。 如本教程所示,可伸縮性允許這些管道從小規模開始,並在任何商業硬體上無縫擴充套件。

本教程可作為使用 Minio(一種高效能、相容 S3-API 的開源物件儲存系統)和 Minio 的 Python SDK 構建強大資料管道的指南。

在當前資料私隱問題日益嚴重的背景下,建立內部控制是沒有商量餘地的。 本教程重點介紹在整個資料準備過程中保護敏感資訊的最佳做法。

當我們了解自動化資料準備、邊緣部署和資料私隱注意事項的複雜性時,請跟隨我們的腳步,為這些核心原則奠定基礎。

在開始之前,請確保您的系統上安裝了以下必備元件:

docker) [ compose docker combo [.]

如果從頭開始,則可以使用適用於您平台的 Docker Desktop 安裝程式進行安裝。 您可以通過執行以下命令來檢查是否安裝了 docker:

docker-compose --version

首先,轉殖教程 git 儲存庫。

在終端視窗中,cd 轉到儲存庫中的 minio-ml-data-prep 目錄並執行以下命令:

docker-compose up minio

當您執行此命令時,它會啟動 minio 服務,允許 minio 伺服器通過 docker-compose 傳遞YML 檔案。

在瀏覽器中,使用您的預設憑據導航並登入 minio 控制台:使用者名稱 minioadmin 和密碼 minioadmin。

當 minio 在乙個終端視窗中執行時,開啟第二個終端視窗並再次導航到 minio-ml-data-prep 目錄。 執行以下命令:

docker-compose up init-minio

此命令執行 python 指令碼 init-miniopy 。此指令碼使用 Minio Python SDK 與 Minio 伺服器進行互動,並負責建立兩個儲存桶:RAW 和 CLEAN(如果它們尚不存在)。

下面是指令碼作用的詳細說明:

桶建立功能:create bucket(如果不存在)函式檢查指定的桶是否存在。 如果儲存桶不存在,請使用 make bucket 建立儲存桶並列印成功訊息。 如果儲存桶已存在,請列印一條訊息,指示該儲存桶已存在。

建立原始和乾淨的儲存桶:然後,該指令碼呼叫兩次 Create Bucket If Not exists 函式,一次用於原始儲存桶,一次用於乾淨儲存桶。 這可確保在需要時建立兩個儲存桶。

錯誤處理:該指令碼包括錯誤處理,使用 try-except 塊捕獲和列印儲存桶建立期間可能發生的任何 s3errors。 這可確保指令碼適當地處理潛在問題,例如網路問題或憑據不正確。

導航到 以檢查是否已成功建立 RAW 和 CLEAN 儲存桶。

接下來,在終端視窗中執行以下命令:

docker-compose up generate-data

此命令執行 python 指令碼 generate-and-upload-fake-datapy 是乙個指令碼,用於生成包含個人身份資訊 (PII) 的虛假資料,將其儲存為本地 parquet 檔案,然後將檔案上傳到 minio raw 儲存桶,演示了將基本資料攝取到 minio 物件儲存系統中的過程。

下面是指令碼正在執行的操作的進一步細分:

生成假資料:生成假資料功能使用假庫建立包含各種假資料字段的字典。 字段包括姓名、電子郵件、位址、**號碼、社會保險號 (SSN)、隨機字串、隨機數和員工詳細資訊,例如職位、部門、工資和雇用日期。

將資料另存為 parquet:s**e as parquet 函式將生成的假資料儲存為 parquet 檔案。 它將資料轉換為 pandas 資料幀,然後轉換為 pyarrow 表,最後將其作為 parquet 檔案寫入資料目錄。

上傳到 Minio:上傳到 Minio 功能將本地 parquet 檔案上傳到 Minio 儲存桶。 它計算檔案大小,以二進位模式開啟檔案,並使用 minio 客戶端將物件上傳到給定物件名稱的指定儲存桶。

生成並上傳多個檔案:生成並上傳到 minio 函式迭代指定次數(預設為 10 次)生成虛假資料,將其儲存為 parquet 檔案,並上傳到 minio raw 儲存桶。

指定 Minio 原始儲存桶:指令碼將 minio 原始儲存桶名稱指定為 raw。

導航到 以檢查原始儲存桶是否已成功填充資料。

執行以下命令,清理生成的資料:

docker-compose up data-transform

此命令執行乙個指令碼,該指令碼自動執行清理個人身份資訊的過程。 它讀取儲存在原始 minio 儲存桶中的資料,然後將清理後的資料上傳到清理儲存桶。 這演示了資料準備工作流中重要的資料私隱步驟。

PII 清理:Scrub PII 功能獲取 pandas 資料幀並刪除個人身份資訊 (PII) 字段,例如姓名、電子郵件、位址、**號碼和 SSN。

清理並上傳到 minio:清理並上傳到 minio 函式迭代指定數量的檔案(預設為 10)。 對於每個檔案,它執行以下操作:

將 parquet 檔案從 minio 上的原始儲存桶**移動到本地目錄。

將 parquet 檔案讀入 pandas 資料幀。

應用 scrub pii 函式從資料幀中刪除 pii。

將清理後的資料幀轉換回 pyarrow 表。

將清理後的表寫入本地目錄中的新 parquet 檔案。

將清理後的 parquet 檔案上傳到 Minio 上的 Clean 儲存桶。

如果您想更深入地檢視檔案以確保它們正確轉換,您可以在 Minio 中的某個檔案上執行以下指令碼。

您可以通過程式設計方式或通過控制台**檔案執行此操作。

import pandas as pd

import pyarrow.parquet as pq

def print_parquet(file_path, num_rows=5):

# read parquet file into a pyarrow table

table = pq.read_table(file_path)

# extract a pandas dataframe from the table

df = table.to_pandas()

# set display options to show all columns without truncation

pd.set_option('display.max_columns', none)

pd.set_option('display.expand_frame_repr', false)

# print the first few rows of the dataframe

print(df.head(num_rows))

# specify the path to your parquet file

parquet_file_path = "path/to/your/file.parquet"

# print the first 5 rows of the parquet file with tidy column display

print_parquet(parquet_file_path)

在“清潔”中執行此操作時在 parquet 檔案上執行指令碼時,將看到終端的輸出,如下所示:

準備好刪除容器、卷和生成的資料後,請執行以下命令:

docker-compose down

本教程將引導您了解使用 Minio 的 SDK 自動進行機器學習資料準備的基本方面。

現在,當你構建和探索了這些資料管道時,請考慮如何在它們的基礎上進行構建。 探索與其他資料來源整合、實施高階轉換或增強現有私隱和安全措施的方法。 本教程充當啟動板,鼓勵你根據機器學習專案的獨特需求和挑戰來創新和自定義這些管道。

繼續探索Minio的SDK和物件儲存系統的功能,嘗試不同型別的資料,並及時了解該領域的最新發展。 通過以本教程中學到的知識為基礎,你將很好地掌握機器學習的自動化資料準備技術。

如需購買,請聯絡minio China。

相關問題答案

    使用自動細胞計數儀進行酵母細胞計數

    D iancheng Biotechnology Diancheng Case 使用自動細胞計數儀進行酵母細胞計數 原文鏈結 歡迎關注鴻科,為您提供最新資訊!酵母可用於多種應用,包括基礎研究 釀造和蒸餾以及食品生產,所有這些都需要準確的細胞計數和活力測定。事實證明,較小的尺寸和形態對於自動細胞計數儀...

    如何測試自動灌膠機的配比

    全自動灌膠機是一種高效 自動化程度高的裝置,活躍在各行各業,包括電子 汽車 醫療等領域。在投入使用之前,必須對本機進行嚴格的測試,以確保其傳動比準確,效能穩定可靠。接下來,我們將詳細解釋如何測試自動灌膠機的配比。首先,將A膠和B膠分別倒入桶中,然後在觸控螢幕中根據膠水比例設定膠水A和B膠的用量和時間...

    如何使用 Smart Trail

    首先,要使用智慧型步道,使用者需要在步道附近的智慧型螢幕上註冊自己的面部。這個過程通常只需要一次,使用者可以在系統中填寫一些基本的個人資訊,如年齡 身高 體重等,建立個人運動資料檔案。點選這裡檢視產品設計方案和產品 註冊完成後,當使用者準備運動時,只需通過智慧型步道,裝置就會通過人臉識別技術自動識別...

    自動粒子計數儀使用說明

    全自動粒子計數儀是一種先進的農業科技裝置,廣泛應用於種子種植 農業生產等領域。本文將詳細介紹自動粒子計數儀的使用說明,幫助使用者更好地理解和操作這種高效的計數工具。全自動種子計數儀是一種高精度的種子計數裝置,可以快速準確地完成大量種子的計數。通過先進的影象識別技術和計算機軟體演算法,自動粒子計數儀可...

    使用空化射流銷毀彈藥的優點

    利用空化射流排空裝藥彈產生的廢水經澄清後可迴圈進入空化射流射流去除工藝,經多層填料過濾器和活性炭過濾器過濾,清除後的廢炸藥經技術處理後可用於民用爆破,過濾器中的廢活性炭可由焚燒爐處理,提高了廢炸藥的再利用率,避免了環境汙染。國外常採用空化射流空心火箭發動機推進劑和空心不易熔化 組分 和索金 蠟製品 ...