kfoldfun

Перекрестный подтвердите функцию для классификации

    Синтаксис

    Описание

    пример

    vals = kfoldfun(CVMdl,fun) перекрестный подтверждает функциональный fun путем применения fun к данным, хранимым в перекрестной подтвержденной модели CVMdl. Необходимо передать fun как указатель на функцию.

    Примеры

    свернуть все

    Обучите классификатор дерева классификации, и затем перекрестный подтвердите его с помощью пользовательской функции потерь k-сгиба.

    Загрузите ирисовый набор данных Фишера.

    load fisheriris

    Обучите классификатор дерева классификации.

    Mdl = fitctree(meas,species);

    Mdl ClassificationTree модель.

    Перекрестный подтвердите Mdl использование 10-кратной перекрестной проверки по умолчанию. Вычислите ошибку классификации (пропорция неправильно классифицированных наблюдений) для наблюдений сгиба валидации.

    rng(1); % For reproducibility
    CVMdl = crossval(Mdl);
    L = kfoldLoss(CVMdl,'LossFun','classiferror')
    L = 0.0467
    

    Исследуйте результат когда стоимость неправильной классификации цветка как versicolor 10, и стоимостью любого другого misclassification является 1. Создайте пользовательский функциональный noversicolor (показанный в конце этого примера). Эта функция приписывает стоимость 10 для неправильной классификации цветка как versicolor, и стоимость 1 для любого другого misclassification.

    Вычислите среднее значение misclassification ошибка с noversicolor стоимость.

    mean(kfoldfun(CVMdl,@noversicolor))
    ans = 0.2267
    

    Этот код создает функциональный noversicolor.

    function averageCost = noversicolor(CMP,~,~,~,Xtest,Ytest,~)
    % noversicolor Example custom cross-validation function
    %    Attributes a cost of 10 for misclassifying versicolor irises, and 1 for
    %    the other irises.  This example function requires the fisheriris data
    %    set.
    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
    end

    Входные параметры

    свернуть все

    Перекрестная подтвержденная модель в виде ClassificationPartitionedModel объект, ClassificationPartitionedEnsemble объект или ClassificationPartitionedGAM объект.

    Перекрестная подтвержденная функция в виде указателя на функцию. fun имеет синтаксис:

    testvals = fun(CMP,Xtrain,Ytrain,Wtrain,Xtest,Ytest,Wtest)
    • CMP компактная модель, сохраненная в одном элементе CVMdl.Trained свойство.

    • Xtrain учебная матрица значений предиктора.

    • Ytrain учебный массив значений отклика.

    • Wtrain учебные веса для наблюдений.

    • Xtest и Ytest тестовые данные, со связанными весами Wtest.

    • Возвращенное значение testvals должен иметь тот же размер через все сгибы.

    Типы данных: function_handle

    Выходные аргументы

    свернуть все

    Результаты перекрестной проверки, возвращенные как числовая матрица. vals содержит массивы testvals выведите, конкатенированный вертикально по всем сгибам. Например, если testvals от каждого сгиба числовой вектор из длины N, kfoldfun возвращает KFold- N числовая матрица с одной строкой на сгиб.

    Типы данных: double

    Введенный в R2011a