首页 > 解决方案 > 为大量数据制作 one-hot 向量

问题描述

我的目标是创建一个单热向量。困难在于我的数据包含 1 亿条记录,并且我将它们保存在 PostgreSQL 数据库中。由于数据的大小,我试图避免一次加载所有数据。我的问题是如何有效地为如此大的数据集进行 one-hot 编码。

目前,我正在明确选择所有类别,例如:

select my_param from my_table order by my_param

这给了我 55 个独特类别的列表:['cat1', 'cat2', 'cat3', ..., 'cat55']。

然后我为这个列表创建一个单热向量:

uniq_cat 一热
猫1 1 0 0 ...
猫2 0 1 0 ...
猫2 0 0 1 ...
猫55 0 0 0 ... 1

最后,我将把这个 one-hot 存储为字典,并在动态中使用我的训练数据映射类别,同时为 ML 过程提供数据。即,我将用相应的 one-hot 向量替换每个训练对象的字符串分类参数值。

这个想法可以吗,还是有更合适的方法来解决这个问题?

标签: pythonmachine-learningscikit-learnone-hot-encoding

解决方案


推荐阅读