sklearns Isolation Forrest 的分类数据

数据挖掘 特征工程 分类数据 集成建模
2021-09-27 14:41:37

我正在尝试使用 sklearn 中的隔离森林 (IF) 进行异常检测。除了它是一种很好的异常检测方法之外,我还想使用它,因为我大约一半的特征是分类的(字体名称等)

使用一种热编码(大约 1000+,这只是众多功能之一)有点太多了,而且我无论如何都在寻找一种更强大的数据表示方式。

另外,我想稍后尝试其他聚类技术,所以我不想一定要进行标签编码,因为它会歪曲欧几里得空间中的数据。

因此,我有一个两部分的问题:

  1. 标签编码(即序数)将如何影响基于树的方法,例如隔离森林?鉴于它们不是基于距离的,它们不应该对序数数据做出假设,对吧?

  2. 对于基于距离的模型,我可以考虑哪些其他特征转换?

2个回答

我使用包含分类和数字特征的数据集对隔离林进行了编码,并且它工作正常。这怎么可能。?

我真的会尽量不要将序数用于分类数据。它在模型中强加了错误的大小和顺序,尤其是当您有 1,000 个示例时。例如,Brush Script 和 Calibri 之间的差异可能非常小,而 Calibri 和 Times New Roman 之间的差异令人难以置信(假设按字典顺序分配),而实际上它们都只是不同的字体。

你可以:

  1. 尝试找出有意义的相似特征的分组,然后对这些分组进行一次热门分组,这样您就不会得到太多列。
  2. 对整个事情进行一次性处理,然后尝试一些降维技术,以使特征空间恢复到合理的水平。
  3. 尝试使用自动编码器或神经方法来学习固定维度的嵌入。

您绝对应该注意的一件事是如何将此过程的结果与您的另一半功能相结合。