3
用于组合因子级别以进行数据挖掘的R包?
想知道是否有人在R中的某个包/函数上运行过,它将组合某个因子的水平,而该水平在一个因子中的所有水平的比例小于某个阈值?具体来说,我进行数据准备的第一步之一就是将稀疏的因子水平合在一起(称为“其他”因子),这些因子至少不构成总数的2%。这是在无监督的情况下完成的,并且当目标是为营销中的某些活动建模时(而不是欺诈检测,因为那些很小的事件可能非常重要),可以执行此操作。我正在寻找一个可以折叠水平直到达到某个阈值比例的函数。 更新: 由于这些出色的建议,我很容易地编写了一个函数。我确实意识到,虽然有可能使比例<最小值的水平崩溃,而仍然使重新编码的水平<最小值,但需要添加比例>最小值的最低水平。可能会更有效,但它似乎可以工作。下一个增强功能是弄清楚如何捕获将折叠逻辑应用于新数据(验证集或将来的数据)的“规则”。 collapseFactors<- function(tableName,minPercent=5,fillIn ="RECODED" ) { for (i in 1:ncol(tableName)) { if(is.factor(tableName[,i]) == TRUE) #process just factors { sortedTable<-sort(prop.table(table(tableName[,i]))) numberToCollapse<-length(sortedTable[sortedTable<(minPercent/100)]) if (sum(sortedTable[1:numberToCollapse])<(minPercent/100)) { numberToCollapse=numberToCollapse+1 #add next level if < minPercent } if(numberToCollapse>1) #if not >1 then nothing to collapse { lf <- names(sortedTable[1:numberToCollapse]) levels(tableName[,i])[levels(tableName[,i]) %in% lf] <- fillIn …
10
r
many-categories