分类问题解析标准是提供给fitcensemble分裂时回归问题

3视图(30天)
我跑hyperparameter优化为两分类问题找到最好的参数使用 fitcensemble 。但是当我尝试使用这些我得到一个奇怪的警告:
警告:您必须通过“SplitCriterion”作为特征向量的mse回归。
我的代码有什么问题?警告时,我使用一个提高合奏“方法”。当我删除“SplitCriterion”,一切工作正常,但是我无法理解为什么Matlab某处的认为这是一个回归的问题当我使用“c”合奏。这里是玩具例子使用任意选择的设置,您可以运行复制警告/错误。
负载carsmall
X =表(加速、气缸、排量、马力、制造行业,Model_Year,体重,MPG);
X.Cylinders (X。气缸< 8)= 0;%气缸中创建两个类变量
t = templateTree (“MaxNumSplits”30岁的
“MinLeafSize”10
“SplitCriterion”,gdi的);
classificationEnsemble = fitcensemble (X,“气缸”,
“方法”,“LogitBoost”,
“NumLearningCycles”12
“学习者”t
“KFold”7
“LearnRate”,0.1);
4评论
托拜厄斯Pahlberg
托拜厄斯Pahlberg 2017年4月10日
如果我运行这样的玩具例子,与“OptimizeHyperparameters”、“所有”:
负载carsmall
X =表(加速、气缸、排量、马力、制造行业,Model_Year,体重,MPG);
X.Cylinders (X。气缸< 8)= 0;%气缸中创建两个类变量
strct =结构(“KFold”7“详细”,1“MaxObjectiveEvaluations”,1000,“SaveIntermediateResults”,真的,
“再分配”、假);
classificationEnsemble = fitcensemble (X,“气缸”,
“方法”,“包”,
“类型”,“树”,
“NumLearningCycles”,300,
“OptimizeHyperparameters”,“所有”,
“HyperparameterOptimizationOptions”,strct);
我不能看到他们失败了,但我不知道应该如何。

登录置评。

接受的答案

epic
epic 2017年4月10日
谢谢,我现在看到的情况下成功与“GentleBoost”和“gdi”在一起。
这是一个错误在fitcensemble hyperparameter优化的搜索空间,这将导致它来评估一些不必要的点。在优化,每当LogitBoost或GentleBoost“方法”时,“SplitCriterion”总是在内部设置为“mse”。但搜索空间中定义一种不承认,所以不必要通过SplitCrierion gdi”和“异常”的价值观在优化。
所以所有点,你看到LogitBoost / gdi和LogitBoost /异常只是LogitBoost / mse。
奇怪的是,你是不允许显式地指定“SplitCriterion”,与fitcensemble mse。相反,当LogitBoost或GentleBoost使用,你需要完全省略SplitCriterion参数。
优化结果仍然有效。你只需要调整的参数传递给fitcensemble。简单的修复你的案子是删除你原来的8号线代码示例,它指定SplitCriterion。结果:
负载carsmall
X =表(加速、气缸、排量、马力、制造行业,Model_Year,体重,MPG);
X.Cylinders (X。气缸< 8)= 0;%气缸中创建两个类变量
t = templateTree (“MaxNumSplits”30岁的
“MinLeafSize”10);
classificationEnsemble = fitcensemble (X,“气缸”,
“方法”,“LogitBoost”,
“NumLearningCycles”12
“学习者”t
“KFold”7
“LearnRate”,0.1);
这个错误将是固定的。非常感谢你的报告。我希望的解决方法不太讨厌。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!