大维度单热编码

问题描述 投票:0回答:1

我正在构建一个销售预测模型,其中包含“年”,“月”,“经济指标”,“Customer_Id”,“Product_Id”,“数量”,“销售额”,“利润”。

清理后的数据集包含约 150 万行和上述 8 列,这是过去 6 年每个客户每个产品的每月销售额。我的最终目标是能够预测整个来年未来几个月的销售额,但更准确地说,预测将针对每个客户级别的产品,这是一个非常详细的级别。

但是,由于我的Customer_Id和Product_Id是TEXT,例如“A77BC”,并且有超过100000个唯一的product_id和6000个唯一的customer_id,如果我使用一种热编码来标记它们,维度将太高,我的设备无法处理,(例如,我的笔记本电脑有 16G 内存,但标签 customer_id 已经需要 24G 内存)我相信一定有更好的方法来处理这种情况,但我对机器学习非常陌生。

machine-learning one-hot-encoding feature-engineering
1个回答
0
投票

从纯粹的计算机科学角度来看,您可能想研究稀疏矩阵。虽然确实以一种天真的方式将某些内容编码为 one-hot 会爆炸你的内存(因为它需要 4 个字节 * num_rows * num_values 来存储),但如果你以稀疏格式存储它,你只需要记住“1”的索引,并且所有多余的 0 都不会被存储,因此如果 num_values 很大,这将节省 (num_values - 1)/num_values 的内存。

© www.soinside.com 2019 - 2024. All rights reserved.