ClassificationEnsemble

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

Классификатор ансамбля

Описание

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

Конструкция

Создайте объект ансамбля классификации использование fitcensemble.

Свойства

BinEdges

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

Числовые предикторы интервалов программного обеспечения, только если вы задаете аргумент пары "имя-значение" 'NumBins' как положительный целочисленный скаляр когда обучение модель с древовидными учениками. Свойство 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 содержит NaN s, то соответствующими значениями Xbinned является NaN s.

CategoricalPredictors

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

ClassNames

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

CombineWeights

Вектор символов, описывающий, как ens комбинирует слабые веса ученика, или 'WeightedSum' или 'WeightedAverage'.

Cost

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

ExpandedPredictorNames

Расширенные имена предиктора, сохраненные как массив ячеек из символьных векторов.

Если образцовое кодирование использования для категориальных переменных, то ExpandedPredictorNames включает имена, которые описывают расширенные переменные. В противном случае ExpandedPredictorNames совпадает с PredictorNames.

FitInfo

Числовой массив подходящей информации. Свойство FitInfoDescription описывает содержимое этого массива.

FitInfoDescription

Вектор символов, описывающий значение массива FitInfo.

HyperparameterOptimizationResults

Описание оптимизации перекрестной проверки гиперпараметров, сохраненных как объект BayesianOptimization или таблица гиперпараметров и присваиваемых значений. Непустой, когда пара "имя-значение" OptimizeHyperparameters непуста при создании. Значение зависит от установки пары "имя-значение" HyperparameterOptimizationOptions при создании:

  • 'bayesopt' (значение по умолчанию) — Объект класса BayesianOptimization

  • 'gridsearch' или 'randomsearch' — Таблица гиперпараметров используемые, наблюдаемые значения целевой функции (потеря перекрестной проверки), и ранг наблюдений от самого низкого (лучше всего) к (худшему) самому высокому

LearnerNames

Массив ячеек из символьных векторов с именами слабых учеников в ансамбле. Имя каждого ученика появляется только однажды. Например, если у вас есть ансамбль 100 деревьев, LearnerNames является {'Tree'}.

Method

Вектор символов, описывающий метод, который создает ens.

ModelParameters

Параметры используются в учебном ens.

NumObservations

Числовой скаляр, содержащий количество наблюдений в данных тренировки.

NumTrained

Количество обученных слабых учеников в ens, скаляре.

PredictorNames

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

Prior

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

ReasonForTermination

Вектор символов, описывающий причину fitcensemble, прекратил добавлять слабых учеников в ансамбль.

ResponseName

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

ScoreTransform

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

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

ens.ScoreTransform = 'function'

или

ens.ScoreTransform = @function

Trained

Вектор ячейки обученных моделей классификации.

  • Если Method является 'LogitBoost' или 'GentleBoost', то хранилища ClassificationEnsemble обученный ученик j в свойстве CompactRegressionLearner объекта, хранившего в Trained{j}. Таким образом, чтобы получить доступ к обученному ученику j, используйте ens.Trained{j}.CompactRegressionLearner.

  • В противном случае ячейки вектора ячейки содержат соответствующие, компактные модели классификации.

TrainedWeights

Числовой вектор обученных весов для слабых учеников в ens. TrainedWeights имеет элементы T, где T является количеством слабых учеников в learners.

UsePredForLearner

Логическая матрица размера P-by-NumTrained, где P является количеством предикторов (столбцы) в данных тренировки X. UsePredForLearner(i,j) является true, когда ученик j использует предиктор i и является false в противном случае. Для каждого ученика предикторы имеют тот же порядок как столбцы в данных тренировки X.

Если ансамбль не имеет типа Subspace, всеми записями в UsePredForLearner является true.

W

Масштабированный weights, вектор с длиной n, количество строк в X. Суммой элементов W является 1.

X

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

Y

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

Методы

компактныйКомпактный ансамбль классификации
crossvalКрест подтверждает ансамбль
resubEdgeРебро классификации перезаменой
resubLossОшибка классификации перезаменой
resubMarginПоля классификации перезаменой
resubPredictКлассифицируйте наблюдения на ансамбль моделей классификации
резюмеВозобновите учебный ансамбль

Унаследованные методы

реброРебро классификации
потеряОшибка классификации
полеПоля классификации
предсказатьКлассифицируйте ансамбль использования наблюдений моделей классификации
predictorImportanceОценки важности предиктора
removeLearnersУдалите членов компактного ансамбля классификации

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

Значение. Чтобы изучить, как классы значения влияют на операции копии, смотрите Копирование Объектов (MATLAB).

Примеры

свернуть все

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

load ionosphere

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

Mdl = fitcensemble(X,Y,'Method','AdaBoostM1')
Mdl = 
  classreg.learning.classif.ClassificationEnsemble
             ResponseName: 'Y'
    CategoricalPredictors: []
               ClassNames: {'b'  'g'}
           ScoreTransform: 'none'
          NumObservations: 351
               NumTrained: 100
                   Method: 'AdaBoostM1'
             LearnerNames: {'Tree'}
     ReasonForTermination: 'Terminated normally after completing the requested number of training cycles.'
                  FitInfo: [100x1 double]
       FitInfoDescription: {2x1 cell}


  Properties, Methods

Mdl является объектом модели ClassificationEnsemble.

Mdl.Trained является свойством, которое хранит 100 1 вектор ячейки обученных деревьев классификации (объекты модели CompactClassificationTree), которые составляют ансамбль.

Постройте график первого обученного дерева классификации.

view(Mdl.Trained{1},'Mode','graph')

По умолчанию fitcensemble выращивает мелкие деревья для повышенных ансамблей деревьев.

Предскажите метку среднего значения X.

predMeanX = predict(Mdl,mean(X))
predMeanX = 1x1 cell array
    {'g'}

Советы

Для ансамбля деревьев классификации свойство Trained ens хранит ens.NumTrained-by-1 вектор ячейки компактных моделей классификации. Для текстового или графического дисплея древовидного t в векторе ячейки, введите:

  • view(ens.Trained{t}.CompactRegressionLearner) для ансамблей агрегировал использование LogitBoost или GentleBoost.

  • view(ens.Trained{t}) для всех других методов агрегации.

Расширенные возможности

Введенный в R2011a