【问题标题】:scikit-learn's LabelEncoder() memory issuescikit-learn 的 LabelEncoder() 内存问题
【发布时间】:2016-11-24 02:17:00
【问题描述】:

我有一个有 2000 万行的 train pandas df 和一个有大约 1000 万行的 test pandas df。

我想将 LabelEncoder() 应用到两个 df 中的列,但我在笔记本电脑甚至 64 gig RAM AWS 实例上不断收到Memory Error

有没有一种方法可以在不丢失映射的情况下分块处理?

这是我使用的代码:

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()

for col in cols_to_encode:
    le.fit(list(train[col])+list(test[col]))
    train[col] = le.transform(train[col])
    test[col] = le.transform(test[col])

我从每行中采样了 500,000 行,并且能够毫无错误地运行代码,所以我知道这不是语法错误之类的。

任何帮助将不胜感激。

【问题讨论】:

    标签: python pandas scikit-learn


    【解决方案1】:

    我以前没有使用过 LabelEncoder,但是从我使用 Sklearn 的工作来看,我知道有一些选项可以帮助并行化。您是否尝试过并行化此任务?使用许多 sklearn 分类器具有的参数(如 n_jobs),甚至使用 python 多处理库。

    【讨论】:

    • 我做的第一件事是检查n_jobs 参数,但这个函数似乎不存在。通常n_jobs 用于分类器,而不是辅助函数。
    猜你喜欢
    • 2019-06-28
    • 2017-01-22
    • 2019-07-03
    • 2017-04-26
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 2014-05-31
    • 2018-02-15
    相关资源
    最近更新 更多