使用 MinIO 的 SDK 进行自动化数据准备,以支持机器学习

小夏 科技 更新 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

    首先,要使用智能步道,用户需要在步道附近的智能屏幕上注册自己的面部。这个过程通常只需要一次,用户可以在系统中填写一些基本的个人信息,如年龄 身高 体重等,建立个人运动数据档案。点击这里查看产品设计方案和产品 注册完成后,当用户准备运动时,只需通过智能步道,设备就会通过人脸识别技术自动识别用户,并开始...

    自动粒子计数仪使用说明

    全自动粒子计数仪是一种先进的农业科技设备,广泛应用于种子种植 农业生产等领域。本文将详细介绍自动粒子计数仪的使用说明,帮助用户更好地理解和操作这种高效的计数工具。全自动种子计数仪是一种高精度的种子计数设备,可以快速准确地完成大量种子的计数。通过先进的图像识别技术和计算机软件算法,自动粒子计数仪可以自...

    使用空化射流销毁弹药的优点

    利用空化射流排空装药弹产生的废水经澄清后可循环进入空化射流射流去除工艺,经多层填料过滤器和活性炭过滤器过滤,清除后的废炸药经技术处理后可用于民用爆破,过滤器中的废活性炭可由焚烧炉处理,提高了废炸药的再利用率,避免了环境污染。国外常采用空化射流空心火箭发动机推进剂和空心不易熔化 组分 和索金 蜡制品 ...