python - 如何在Jupyter Notebook中建立大数据量的机器学习模型?

标签 python machine-learning google-bigquery jupyter-notebook bigdata

背景:

我在 Google 云 BigQuery 中有大量数据 (1500GB)。

我正在尝试使用这些数据作为训练数据集来构建机器学习模型。因此,我在 Jupyter 笔记本中编写了以下代码来获取数据集。

import pandas as pd
from google.cloud import bigquery

import os
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = './my_credential.json'

client = bigquery.Client()

sql = """
    SELECT
Feature1,
Feature2,
Feature3,
target
FROM dataset
    """

sql_result = client.query(
    sql
)
sql_result.to_dataframe()

问题:

代码执行 30 分钟后抛出内存错误。 我理解这是因为代码尝试将 1500GB 数据拉取到我的 Jupyter 笔记本,但我不知道如何修复。

如何使用 Jupyter Notebook 训练如此大量的数据?

最佳答案

您可能正在寻找一个外核计算引擎。由于您使用的是 Python,因此您应该查看 DaskApache SparkPySpark .

Dask 是一个用 Python 实现的轻量级库,位于 NumPy 和 pandas 之上,以允许并行和/或核外计算。它通过 dask-ml 集成机器学习并公开与 NumPy、pandas 和 Scikit-Learn 的 API 非常相似的 API。

Spark 是一个用 Scala 实现的包罗万象的框架,在 JVM 上运行并公开 Python 的 API。它在大数据处理方面比较成熟,在业界得到广泛应用。 Spark还提供了机器学习库MLLib .

两者都可以在本地计算机或专用多节点集群上运行,以实现更快的计算。

关于python - 如何在Jupyter Notebook中建立大数据量的机器学习模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57490118/

相关文章:

R对象不是矩阵

machine-learning - 我们如何在数据集上使用无监督学习技术,然后标记集群?

Python 2.7 和 GCP 谷歌 BigQuery : Capturing file load errors?

python - 通过在 Pandas 的另一列中添加新值来扩展 Timeindex。

python - 从包含逗号的字符串中提取子字符串

python - Pyramid 授权被绕过

mysql - 谷歌大查询

python - 计算大于 pandas groupby 中的值的项目

python - Keras 预测()值错误 : input doesn't have the correct dimension

google-bigquery - 如何在 BigQuery(或迷你图或颜色渐变)中构建 "Star Rating"报告