如何在随机森林模型训练中最好地使用邮政编码?

How to best use zipcodes in Random Forest model training?

我有一个包含邮政编码列的数据集。它们在输出中具有一定的意义,我想将其用作一项功能。我正在使用随机森林模型。

我需要有关将邮政编码列用作功能的最佳方式的建议。 (例如,我应该为该邮政编码获取 lat/long 而不是直接输入邮政编码等)

提前致谢!!

处理邮政编码或任何高基数分类列的常用方法称为 "target encoding" 或 "impact encoding"。在 H2O 中,您可以应用 target encoding to any categorical columns. As of H2O 3.20, this is only available in R, but in the next stable release, 3.22, it will be available in all clients (JIRA ticket here).

如果您使用的是 R,我的建议是同时尝试目标编码和 Lauren 提到的 GLRM 方法并比较结果。如果您使用 Python 或其他语言,那么现在尝试 GLRM 并在 H2O 3.22 发布时尝试目标编码。

我想了解 Erin LeDell 所说的关于目标编码的第二个问题。

以下是一些其他选项,并非所有选项都适用:

  • 将邮政编码的粒度减少到前 1、2、3 或 4 位数字。所以 邮政编码 90210 变成 902 (902XX) 代表洛杉矶 县。 902 zipcodes
  • 你能按 MSA or CBSA 对邮政编码进行分组吗?
  • 是否有可以附加邮政编码的功能,即 city/urban/rural 等
  • 你能提取一些邮政编码人口统计数据、人口规模或收入吗
  • 距离to/from关键位置(机场、市中心等)
  • 目标编码然后分组为非常高、高、中和低(或任何有意义的)example这将有助于防止过度训练您的模型。