这可能不是正确的地方,但我不知道还能在哪里问它。我正在尝试使用smbinning
包。特别是,我试图通过多个预测变量进行bin。问题是package documentation中的所有示例只处理一个预测变量。我天真地尝试过这个:
result=smbinning(df=training,y="FlagGB",x=".,",p=.05)
似乎执行正常,但如果我试图运行result$ivtable
我收到了错误
Error in result$ivtable : $ operator is invalid for atomic vectors
有没有人知道a)如何让smbinning接受多个预测因子,或者它是否能够使用另一个包; b)如何解决上面列出的具体错误?
答案 0 :(得分:0)
您是否查看了“信息”包?它似乎正在完成这项工作,但没有设施来重新编码变量。如果有的话,我一直无法找到。否则,它是一个非常好的包,用于探索和分析变量。
答案 1 :(得分:0)
对于问题a),你应该使用sumiv方法,它可以一步计算所有变量的IV。代码如:
sumivt = smbinning.sumiv(chileancredit.train,Y = “FlagGB”)
sumivt#按特征显示IV表
答案 2 :(得分:0)
我已经解决了问题,因为训练可能不是数据框,你必须使用as.data.frame(训练)将训练转换为数据框。你可以看到smbinning代码(https://github.com/cran/smbinning/blob/master/R/smbinning.R#L490),有这个块
i=which(names(df)==y) # Find Column for dependant
j=which(names(df)==x) # Find Column for independant
if (!is.numeric(df[,i]))
{
return("Target (y) not found or it is not numeric")
}
其次,y FlagGB必须是数字,如果你的y变量是因子,你必须转换为数字,你可以使用as.numeric(as.character(y))而不是直接使用as.numerical() 问题与"Target (y) not found or it is not numeric" -Package smbinning - R
类似