1

我正在尝试通过应用无监督离散化滤波器来提高我的 WEKA 模型的准确性。我需要决定 bin 的数量以及是否应该使用等频 binning。通常,我会使用训练集对此进行优化。

但是,如何确定 bin 大小以及在使用交叉验证时是否应使用等频 binning?我最初的想法是在多个交叉验证测试中使用分类器的准确度结果来找到最佳的 bin 大小。但是,尽管使用了交叉验证,但使用相同的集合来测试模型的准确性,这不是错的吗,因为我有一个过度拟合的模型?那么确定垃圾箱大小的正确方法是什么?

我还尝试了监督离散化过滤器来确定 bin 大小,但这只会导致单个 bin。这是否意味着我的数据过于随机,因此无法聚集到多个 bin 中?

4

1 回答 1

2

是的,您的想法和对第一个问题的担忧都是正确的。

您要做的是Parameter Optimization。当您尝试优化分类器的参数时,通常会使用该术语,例如,随机森林的树数或支持向量机的 C 参数。但您也可以将其应用于预处理步骤和过滤器。

在这种情况下,您要做的是嵌套交叉验证。(您应该查看https://stats.stackexchange.com/以获取更多信息,例如此处此处)。重要的是最终分类器,包括所有预处理步骤,如分箱等,从未见过测试集,只见过训练集。这是外部交叉验证

对于外部交叉验证的每一折,您需要对训练集进行内部交叉验证以确定模型的最佳参数。

我将尝试通过简单的 2 折交叉验证“可视化”它

Data set
########################################

Split for outer cross-validation (2-fold)
#################### ####################
training set                     test set

Split for inner cross-validation
########## ##########
training         test

Evaluate parameters
########## ##########
build with  evaluated

bin size  5   acc 70%
bin size 10   acc 80%
bin size 20   acc 75%
...
=> optimal bin size: 10

Outer cross-validation (2-fold)
#################### ####################
training set                     test set
apply bin size 10
train model                evaluate model

参数优化可能非常耗费精力。如果您有 3 个参数,每个参数有 10 个可能的参数值,那么您需要为每个外部折叠评估 10x10x10=1000 个参数组合。

这本身就是一个机器学习的话题,因为你可以在这里做从简单的网格搜索到进化搜索的所有事情。有时您可以使用启发式方法。但是您每次都需要进行某种参数优化。

至于你的第二个问题:如果没有看到你的数据,这真的很难说。但是无论如何,您都应该将其作为一个单独的问题发布。

于 2015-08-04T16:00:51.417 回答