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

Posted

技术标签:

【中文标题】如何在随机森林模型训练中最好地使用邮政编码?【英文标题】:How to best use zipcodes in Random Forest model training? 【发布时间】:2019-02-16 06:26:30 【问题描述】:

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

我需要关于使用 zipcode 列作为功能的最佳方式的建议。 (例如,我应该得到那个邮政编码的纬度/经度,而不是直接输入邮政编码等)

提前致谢!!

【问题讨论】:

看看 H2O 的 GLRM algorithm 和这个 tutorial 使用 GLRM 和另一种监督学习算法处理邮政编码。 【参考方案1】:

处理邮政编码或任何高基数分类列的常用方法称为“目标编码”或“影响编码”。在 H2O 中,您可以将 target encoding 应用于任何分类列。从 H2O 3.20 开始,这仅在 R 中可用,但在下一个稳定版本 3.22 中,它将在所有客户端中可用(JIRA 票证here)。

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

【讨论】:

感谢艾琳的回复。我将在 python 中使用 H2O 3.22 进行尝试【参考方案2】:

我对 Erin LeDell 关于目标编码的看法第二。

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

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

【讨论】:

非常有趣和有用的信息瑞恩。非常感谢。

以上是关于如何在随机森林模型训练中最好地使用邮政编码?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用随机森林训练和预测模型?

如何将经过训练和测试的随机森林模型应用于 tidymodels 中的新数据集?

如何将使用 PCA 和随机森林训练的模型应用于测试数据?

如何在 Sklearn 的随机森林分类器中将训练模型用于另一个数据集?

使用 python sklearn 增量训练随机森林模型

使用 Pyspark 训练随机森林回归模型