我有一列包含具有 nunique 3349 值的分类数据,在 18000k 行数据集中,代表世界城市。
我还有另一列包含 145 个唯一值,我也可以在我的模型中使用它们来表示产品类别。
我可以对这些列使用一种热编码还是该解决方案有问题?比如使用一种热编码的唯一值的最大数量是多少,所以不会有任何问题?
如果我也应该使用另一种编码,你能指出我正确的方向吗?
我有一列包含具有 nunique 3349 值的分类数据,在 18000k 行数据集中,代表世界城市。
我还有另一列包含 145 个唯一值,我也可以在我的模型中使用它们来表示产品类别。
我可以对这些列使用一种热编码还是该解决方案有问题?比如使用一种热编码的唯一值的最大数量是多少,所以不会有任何问题?
如果我也应该使用另一种编码,你能指出我正确的方向吗?
对于分类列,您有两个选项:
对于具有 145 个值的列,我会使用一种热编码和嵌入来处理 ~3k 值。此决定可能会根据功能的总数而改变。
嵌入将特征值映射到一维向量中,以便模型知道纽约、巴黎、伦敦在一个方面(大小)是相似的城市,而在其他方面则非常不同。因此,模型将不使用约 3k 列特征,而是使用约 50 列向量表示。
解释嵌入的文章: