如何在 Pandas 中重新编码 53k 个唯一地址(保存为对象)w/o One-Hot-Encoding?

How can I recode 53k unique addresses (saved as objects) w/o One-Hot-Encoding in Pandas?

我的数据框有 380 万行和 20 个左右的特征,其中许多是分类特征。减少功能数量后,我可以“虚拟化”一个关键列,其中包含 20 个左右的类别,并且我的 COLAB(据称)TPU 运行 不会崩溃。

但还有另一列包含大约 53,000 个唯一值。尝试“模拟”此功能会使我的会话崩溃。我不能放弃这个专栏。

我查看了目标编码,但数据集非常不平衡,我担心目标泄漏。有解决办法吗?

编辑:我的目标变量是一个简单的二进制变量。

在不了解 problem/feature 的更多详细信息的情况下,没有明显的方法可以做到这一点。这是数据 Science/Machine 学习的一部分,它是 艺术,而不是科学 。几个想法:

  1. 对所有内容进行一次热编码,然后使用降维算法删除一些列(PCA、SVD 等)。
  2. 只有一个热编码一些值(比如将其限制为 10 或 100 个类别,而不是 53,000 个),然后对于其余部分,使用“其他”类别。
  3. 如果可以为这些变量构建嵌入(并非总是可能),您可以探索这个。
  4. Group/bin 列中某些基础特征的值。 IE。如果该特征类似于 days_since_X,则按 100 或其他值对它进行分类。或者,如果它是动物的名称,则按类型分组(哺乳动物、爬行动物等)