使用 Dask 和 Scikit-learn 处理大型数据集

本文揭示了如何利用 Dask 进行可扩展的数据处理,即使在有限的硬件限制下也是如此。本文揭示了如何利用 Dask 进行可扩展的数据处理,即使在有限的硬件限制下也是如此。

来源:KDnuggets
图片由编辑提供

# 简介

#

Dask 是一组利用并行计算功能的软件包,在处理大型数据集或构建高效的数据密集型应用程序(例如高级分析和机器学习系统)时非常有用。其最突出的优势是 Dask 与现有 Python 框架的无缝集成,包括支持通过并行工作流程与 scikit-learn 模块一起处理大型数据集。本文揭示了如何利用 Dask 进行可扩展的数据处理,即使在有限的硬件限制下也是如此。

达斯克 scikit-learn

# 分步演练

尽管加州住房数据集不是特别庞大,但它也相当大,这使其成为温和、说明性编码示例的绝佳选择,该示例演示了如何联合利用 Dask 和 scikit-learn 进行大规模数据处理。

加州住房数据集

Dask 提供了一个数据帧模块,它模仿 Pandas DataFrame 对象的许多方面,以处理可能无法完全放入内存的大型数据集。我们将使用此 Dask DataFrame 结构从 GitHub 存储库中的 CSV 加载数据,如下所示:

数据框 数据框
将 dask.dataframe 导入为 dd

url =“https://raw.githubusercontent.com/gakudo-ai/open-datasets/refs/heads/main/housing.csv”
df = dd.read_csv(url)

df.head()

这里有一个重要的说明。如果您想查看数据集的“形状”(行数和列数),该方法比仅使用 df.shape 稍微复杂一些。相反,你应该这样做:

df.shape
num_rows = df.shape[0].compute()
num_cols = df.shape[1]
print(f"行数:{num_rows}")
print(f"列数:{num_cols}")

输出:

行数:20640
列数:10
计算() 数据预处理 处理缺失值
df = df.dropna()

num_rows = df.shape[0].compute()
num_cols = df.shape[1]
print(f"行数:{num_rows}")
print(f"列数:{num_cols}")
标准缩放器 缩放方式 “房屋中值” X_pd X_scaled