| Contents | Index |
Cross validate function
vals = kfoldfun(obj,fun)
vals = kfoldfun(obj,fun) cross validates the function fun by applying fun to the data stored in the cross-validated model obj. You must pass fun as a function handle.
obj |
Object of class ClassificationPartitionedModel or ClassificationPartitionedEnsemble. |
fun |
A function handle for a cross-validation function. fun has the syntax testvals = fun(CMP,Xtrain,Ytrain,Wtrain,Xtest,Ytest,Wtest)
|
Cross validate a classification tree, and obtain the classification error (see kfoldLoss):
load fisheriris
t = ClassificationTree.fit(meas,species);
rng(0,'twister') % for reproducibility
cv = crossval(t);
L = kfoldLoss(cv)
L =
0.0467Examine the result when the error of misclassifying a flower as 'versicolor' is 10, and any other error is 1:
Write a function file that gives a cost of 1 for misclassification, but 10 for misclassifying a flower as versicolor.
function averageCost = noversicolor(CMP,Xtrain,Ytrain,Wtrain,Xtest,Ytest,Wtest)
Ypredict = predict(CMP,Xtest);
misclassified = not(strcmp(Ypredict,Ytest)); % different result
classifiedAsVersicolor = strcmp(Ypredict,'versicolor'); % index of bad decisions
cost = sum(misclassified) + ...
9*sum(misclassified & classifiedAsVersicolor); % total differences
averageCost = cost/numel(Ytest); % average error |
Save the file as noversicolor.m on your MATLAB path.
Compute the mean misclassification error with the noversicolor cost:
mean(kfoldfun(cv,@noversicolor))
ans =
0.1667ClassificationPartitionedModel | crossval | kfoldEdge | kfoldLoss | kfoldMargin | kfoldPredict
| © 1984-2012- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |