exponenta event banner

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, и стоимость любой другой ошибочной классификации 1. Создание пользовательской функции noversicolor (показано в конце этого примера). Эта функция присваивает стоимость 10 за неправильную классификацию цветка как versicolor, и стоимость 1 для любой другой неправильной классификации.

    Вычислите среднюю ошибку неправильной классификации с помощью 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