我有一个带有目标变量的数据集,其中某些类只有几个实例。我知道交叉验证可能不是最好的方法,但我想知道Weka在使用分层k折叠交叉验证时如何处理这个问题。试图在这里搜索实际代码:http://grepcode.com/file/repo1.maven.org/maven2/nz.ac.waikato.cms.weka/weka-dev/3.7.6/weka/filters/supervised/instance/StratifiedRemoveFolds.java/但我找不到它。
示例:目标变量有3个类,其中2个有50个实例,1个只有1个。分层抽样试图保持类分布相同,如果我们尝试10倍,这种情况就不可能了。
这可能是一个statexchange问题,但我并不是对统计答案感兴趣,而是对代码的工作原理。例如,使用R与Rweka
require(RWeka)
iris_input <- iris[1:101,]
iris_fit <- J48(Species ~ ., data = iris_input, na.action = NULL)
evaluate_Weka_classifier(iris_fit,numFolds=10)
希望我的问题很明确。
答案 0 :(得分:0)
在查看混淆矩阵时,只有一个实例被错误分类。这意味着它在所有折叠中也只发生过一次。
evaluate_Weka_classifier(iris_fit,numFolds = 10)$混淆矩阵