ClassificationPartitionedEnsemble

Пакет: classreg.learning.partition
Суперклассы: ClassificationPartitionedModel

Перекрестно проверенный классификационный ансамбль

Описание

ClassificationPartitionedEnsemble - набор классификационных ансамблей, обученных на перекрестно проверенных складках. Оцените качество классификации путем перекрестной валидации с помощью одного или нескольких методов «kfold»: kfoldPredict, kfoldLoss, kfoldMargin, kfoldEdge, и kfoldfun.

Каждый метод «kfold» использует модели, обученные внутрикратным наблюдениям, чтобы предсказать ответ для несовпадающих наблюдений. Например, предположим, что вы пересекаете проверку с помощью пяти складок. В этом случае каждая обучающая складка содержит примерно 4/5 данных, а каждая тестовая складка содержит примерно 1/5 данных. Первая модель, сохраненная в Trained{1} обучалась на X и Y при исключении первого 1/5 вторая модель хранилась в Trained{2} обучалась на X и Y со вторым 1/5 исключенным, и так далее. Когда вы звоните kfoldPredict, он вычисляет предсказания для первого 1/5 данных с помощью первой модели, для второго 1/5 данных с использованием второй модели и так далее. Короче говоря, реакция на каждое наблюдение вычисляется kfoldPredict использование модели, обученной без этого наблюдения.

Конструкция

cvens = crossval(ens) создает перекрестно проверенный ансамбль из ens, классификационный ансамбль. Для получения дополнительной информации о синтаксисе смотрите crossval страница с описанием метода.

cvens = fitcensemble(X,Y,Name,Value) создает перекрестно проверенный ансамбль при Name является одним из 'CrossVal', 'KFold', 'Holdout', 'Leaveout', или 'CVPartition'. Для получения дополнительной информации о синтаксисе смотрите fitcensemble страница с описанием функции.

Свойства

BinEdges

Границы интервала для числовых предикторов, заданные как массив ячеек из p числовых векторов, где p - количество предикторов. Каждый вектор включает границы интервала для числового предиктора. Элемент в массиве ячеек для категориального предиктора пуст, потому что программное обеспечение не встраивает категориальные предикторы.

Программное обеспечение помещает числовые предикторы только, если вы задаете 'NumBins' аргумент имя-значение как положительный целочисленный скаляр при обучении модели с учениками дерева. The BinEdges свойство пустое, если 'NumBins' значение пустое (по умолчанию).

Можно воспроизвести привязанные данные предиктора Xbinned при помощи BinEdges свойство обученной модели mdl.

X = mdl.X; % Predictor data
Xbinned = zeros(size(X));
edges = mdl.BinEdges;
% Find indices of binned predictors.
idxNumeric = find(~cellfun(@isempty,edges));
if iscolumn(idxNumeric)
    idxNumeric = idxNumeric';
end
for j = idxNumeric 
    x = X(:,j);
    % Convert x to array if x is a table.
    if istable(x) 
        x = table2array(x);
    end
    % Group x into bins by using the discretize function.
    xbinned = discretize(x,[-inf; edges{j}; inf]); 
    Xbinned(:,j) = xbinned;
end
Xbinned содержит индексы интервала в диапазоне от 1 до количества интервалов для числовых предикторов. Xbinned значения 0 для категориальных предикторов. Если X содержит NaNs, затем соответствующее Xbinned значения NaNс.

CategoricalPredictors

Категориальные индексы предиктора, заданные как вектор положительных целых чисел. CategoricalPredictors содержит значения индекса, соответствующие столбцам данных предиктора, которые содержат категориальные предикторы. Если ни один из предикторов не является категориальным, то это свойство пустое ([]).

ClassNames

Список элементов в Y с удаленными дубликатами. ClassNames может быть числовым вектором, вектором категориальных переменных, логическим вектором, символьным массивом или массивом ячеек векторов символов. ClassNames имеет тот совпадающий тип данных, что и данные в аргументе Y. (Программа обрабатывает массивы строк как массивы ячеек векторов символов.)

Combiner

Массив ячеек из объединителей во всех складках.

Cost

Квадратная матрица, где Cost(i,j) - стоимость классификации точки в класс j если его класс true i (строки соответствуют истинному классу, а столбцы - предсказанному классу). Порядок строк и столбцов Cost соответствует порядку классов в ClassNames. Количество строк и столбцов в Cost количество уникальных классов в ответе. Это свойство доступно только для чтения.

CrossValidatedModel

Имя перекрестно проверенной модели, вектор символов.

KFold

Количество складок, используемых в перекрестно проверенном ансамбле, положительное целое число.

ModelParameters

Параметры хранения объектов cvens.

NumObservations

Количество точек данных, используемых в обучении ансамбля, положительное целое число.

NumTrainedPerFold

Количество слабых учащихся, используемых при обучении каждой складки ансамбля, положительное целое число.

Partition

Разбиение на cvpartition классов используется при создании перекрестно-проверенного ансамбля.

PredictorNames

Массив ячеек из имен для переменных предиктора в том порядке, в котором они появляются X.

Prior

Числовой вектор априорных вероятностей для каждого класса. Порядок элементов Prior соответствует порядку классов в ClassNames. Количество элементов Prior количество уникальных классов в ответе. Это свойство доступно только для чтения.

ResponseName

Имя переменной отклика Y, вектор символов.

ScoreTransform

Указатель на функцию для преобразования счетов или вектор символов, представляющий встроенную функцию преобразования. 'none' означает отсутствие преобразования; эквивалентно 'none' означает @(x)x. Список встроенных функций преобразования и синтаксис пользовательских функций преобразования см. в fitctree.

Добавление или изменение ScoreTransform функция, использующая запись через точку:

ens.ScoreTransform = 'function'

или

ens.ScoreTransform = @function

Trainable

Массив ячеек ансамблей, обученных на складках для перекрестной валидации. Каждый ансамбль полон, что означает, что он содержит свои обучающие данные и веса.

Trained

Массив ячеек из компактных ансамблей, обученных на складках для перекрестной валидации.

W

Масштабированные weights, вектор с длиной n, количество строк в X.

X

Матрица или таблица значений предиктора. Каждый столбец X представляет одну переменную, и каждая строка представляет одно наблюдение.

Y

Числовой вектор, категориальный вектор, логический вектор, символьный массив или массив ячеек из векторов символов. Каждая строка Y - ответ на данные в соответствующей строке X.

Функции объекта

kfoldEdgeКлассификационные ребра для перекрестно проверенной классификационной модели
kfoldLossКлассификационные потери для перекрестно проверенной классификационной модели
kfoldMarginКлассификационные поля для перекрестно проверенной классификационной модели
kfoldPredictКлассифицируйте наблюдения в перекрестно проверенной классификационной модели
kfoldfunФункция перекрестной проверки для классификации
resumeВозобновите обучение учащихся на складках перекрестной валидации

Копировать семантику

Значение. Чтобы узнать, как классы значений влияют на операции копирования, см. раздел «Копирование объектов».

Примеры

свернуть все

Оцените ошибку перекрестной валидации k-fold для классификационного ансамбля, который моделирует данные радужной оболочки глаза Фишера.

Загрузите набор выборочных данных.

load fisheriris

Обучите ансамбль из 100 бустерных классификационных деревьев с помощью AdaBoostM2.

t = templateTree('MaxNumSplits',1); % Weak learner template tree object
ens = fitcensemble(meas,species,'Method','AdaBoostM2','Learners',t);

Создайте перекрестно проверенный ансамбль из ens и найдите ошибку перекрестной валидации k-fold.

rng(10,'twister') % For reproducibility
cvens = crossval(ens);
L = kfoldLoss(cvens)
L = 0.0533