减少大型分类变量的级别数

时间:2016-08-21 16:26:42

标签: python r encoding categorical-data binning

是否有一些现成的库或包用于python或R来减少大型分类因素的级别数?

我希望实现与R: "Binning" categorical variables类似的功能,但会编码为最常见的top-k因子和“other”。

4 个答案:

答案 0 :(得分:5)

R包forcats为此目的fct_lump()

library(forcats)
fct_lump(f, n)

f是因素,n是要保留的最常见级别的数量。其余的记录为Other

答案 1 :(得分:1)

以下是使用R的{​​{1}}中的一个示例,但如果没有data.table也应该很容易。

data.table

答案 2 :(得分:1)

我认为你不想这样做。将多个级别分组到一个组中可能会使该功能的预测性降低。您要做的是根据相似性指标将进入其他的所有级别放入群集中。其中一些可能与您的top-K级别集群,有些可能聚集在一起以提供最佳性能。

我有类似的问题,最后自己回答here。对于我的相似性度量,我使用来自随机森林回归的邻近矩阵拟合除了那个之外的所有特征。我的解决方案的不同之处在于,由于我使用k-mediods进行聚类,因此我的一些最常见的K可能会聚集在一起。您可能希望更改群集算法,以便您的mediods是您选择的top-K。

答案 3 :(得分:0)

这是使用'00' R:

的方法
base