减少特征值

数据挖掘 数据清理 特征工程
2022-03-02 09:38:56

我有一个包含 700 多万条记录的数据集,其特征应该产生良好的预测能力。问题是它具有比它应该的更多的独特价值。10k+ 个唯一值应该映射到大约 150 个。我有我希望它们映射到的 150 个值的列表。考虑使用距离算法(levenshtein?)将唯一值从数据映射到所需的一组值。还有什么其他的方法来思考这个问题?

前任。'Table'、'tab'、'tbl' 都应该映射到 'table'。考虑到唯一值的数量,我不打算为此过程手动构建查找表。数据中的唯一值均源自所需值——它们是首字母缩写词或缩写词。

1个回答

我同意使用相似度或距离度量(近似字符串匹配)的想法。我会尝试一堆并在样本上测试它们:Levenshtein、Jaro、重叠系数或余弦(可选用 TF-IDF)在双/三元字符上。

我还会尝试捕捉最常见的缩写,并为这些常见情况提供一个查找表,因为:

  1. 计算相似度/距离度量需要时间,因此为同一个字符串多次计算相同的结果是低效的(而且这些缩写中的一些很可能被多次使用)。
  2. 这使您有机会至少在最常见的情况下检查映射是否正确(或者如果不正确则进行修复),从而最大限度地减少数据中的噪声总量。