特征工程

数据挖掘 数据集 熊猫 特征提取 分类数据 特征工程
2022-02-19 07:07:52

我有一个大约 37,000 行和 54 列的数据框。在这 54 列中,以非常令人毛骨悚然的格式提供了两列,即“user_id”和“mail_id”,如下所示:

user_id                                           mail_id       
AR+tMy3H/E+Re8Id20zUIz+amJkv6KU12o+BrgIDin0=      DQ/4I+GIOz2ZoIiK0Lg0AkwnI35XotghgUK/MYc101I=
1P4AOvdzJzhDSHi7jJ3udWv4ajpKxOn4T/rCLv4PrXU=      BL3z4RtiyfIDydaRYWX2ZXL6IX10QH1yG5ak1s/8Lls=
OEfFUcsTAGInCfsHuLZuIgdSNtuNsg8EdfN98VUZVTs=      BL3z4RtiyfIDydaRYWX2ZXL6IX10QH1yG5ak1s/8Lls=   
1P4AOvdzJzhDSHi7jJ3udWv4ajpKxOn4T/rCLv4PrXU=      EHNBRbi6i9KO6cMHsuDPFjZVp2cY3RH+BiOKwPwzLQs=
CYRcuV0cR0algMZJ1N6+3uKcqi8iu+6tJNzmBbmgN7o=      K0y/NW59TJkYc5y0HUwDeAXrewYT0JQlkcozz0s2V5Q=

在对我的数据进行详细分析后,我发现我不能从我的数据框中删除这两列,因为它们对于预测来说太重要了。我可以散列这两个特性,但还有一件更有趣的事情。user_ids 和 mail_ids 只有 2,000 种类型。所以做一个热编码会有很大帮助。我的问题是,如果我在 pandas 中使用 'get_dummies' 方法将其转换为一种热编码sparse = True,它会节省内存还是有其他有效的方法可以做到这一点?

2个回答

@Nain,这被称为一个难题:)

一种可能的解决方案称为“工程混合变量”。我附上了一个可能的解决方案的屏幕截图。并非一切都是出于对作者的公平。它基于 Soledad Galli在 Udemy 上的机器学习特征工程。

在此处输入图像描述

@Student T:熊猫可能只有几千行的内存问题,取决于宽度和操作(merge()可能很糟糕)。

如果您确实有问题,我发现迁移到数据库最痛苦,只需将您的数据帧转储到表中,DataFrame.to_sql()然后将其拉回您的 scikit-learn 管道pandas.read_sql_query()