与其创建 15 个额外的充满稀疏二进制数据的列,我可以:
1) 使用前 15 个素数作为 15 个类别的索引
2) 通过将类别的素数相乘来存储数据,否则这些类别在 one-hot 编码中的值为 1
3)通过分解乘以唯一素数生成的值来检索数据
例如:1914 将产生列表 [2, 3, 11, 29],它会让您知道具有 1914 值的用户具有属性 2、3、11 和 29,但没有其他属性。
我知道这是有限的,因为 BIGINT 只能保存前 15 个素数的乘积,但在某些情况下它是否仍然有用并在搜索数据库时节省时间?整个表将小 14 列。我想这不是关于机器学习算法,而是更多关于存储和检索数据。