Filter löschen
Filter löschen

cvloss or kfoldloss for regression tree?

1 Ansicht (letzte 30 Tage)
Salad Box
Salad Box am 16 Jan. 2019
Beantwortet: Jeremy Brecevic am 27 Nov. 2020
Hi,
I'm a bit confused with 'cvloss' and 'kfoldLoss'.
  1. kfoldLoss
Syntax: L = kfoldLoss(cvmodel) returns the cross-validation loss of cvmodel.
load carsmall
>> XX = [Displacement Horsepower Weight];
>> YY = MPG;
>> cvmodel = fitrtree(XX,YY,'crossval','on');
>> L = kfoldLoss(cvmodel,'mode','average')
L =
30.3578
Default: 'mse', mean square root.
2. cvloss
Syntax: E = cvloss(tree) returns the cross-validated regression error (loss) for a regression tree.
>> load carsmall
>> X = [Displacement Horsepower Weight];
>> Mdl = fitrtree(X,MPG);
>> rng(1);
>> E = cvloss(Mdl)
E =
25.7383
First, both cases used same predictors and same response, why there is a difference between L and E outcomes?
Second, function 'fitrtree' by default 'crossval' is turned 'off'. In the 'cvloss' example, noticed that 'Mdl = fitrtree(X,MPG);' didn't turn 'crossval' on, how does it have anything to do with cross-validated regression? It is not even turned on.
Third, how are both kfoldLoss and cvloss calculated? looks that they both use MSE but giving completely different results.

Antworten (1)

Jeremy Brecevic
Jeremy Brecevic am 27 Nov. 2020
Unlike cvloss, kfoldLoss does not return SE,Nleaf, or BestLevel. kfoldLoss also does not allow you to examine any error other than the classification error.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by