exponenta event banner

CompactClassificationDiscriminant

Пакет: classreg.learning.classif

Компактный класс дискриминантного анализа

Описание

A CompactClassificationDiscriminant объект является компактной версией классификатора дискриминантного анализа. Компактная версия не включает данные для обучения классификатора. Поэтому нельзя выполнять некоторые задачи с помощью компактного классификатора, например, перекрестную проверку. Использование компактного классификатора для прогнозирования (классификации) новых данных.

Строительство

cobj = compact(obj) конструирует компактный классификатор из полного классификатора.

cobj = makecdiscr(Mu,Sigma) создает компактный классификатор дискриминантного анализа из средства класса Mu и ковариационная матрица Sigma. Дополнительные сведения о синтаксисе см. в разделе makecdiscr.

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

obj

Классификатор дискриминантного анализа, созданный с помощью fitcdiscr.

Свойства

BetweenSigma

pоколо-p матрица, ковариация между классами, где p - количество предикторов.

CategoricalPredictors

Индексы категориального предиктора, который всегда пуст ([]) .

ClassNames

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

Coeffs

kоколо-k структура матриц коэффициентов, где k - количество классов. Coeffs(i,j) содержит коэффициенты линейных или квадратичных границ между классами i и j. Поля в Coeffs(i,j):

  • DiscrimType

  • Class1ClassNames(i)

  • Class2ClassNames(j)

  • Const - скаляр

  • Linear - Вектор с p компоненты, где p - количество столбцов в X

  • Quadraticpоколо-p матрица, существует для квадратичной DiscrimType

Уравнение границы между классами i и класс j является

Const + Linear * x + x' * Quadratic * x = 0,

где x - вектор столбца длины p.

Если fitcdiscr имел FillCoeffs пара имя-значение установлена в 'off' при построении классификатора, Coeffs пуст ([]).

Cost

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

Изменение Cost матрица с использованием точечной нотации: obj.Cost = costMatrix.

Delta

Значение порога дельты для линейной дискриминантной модели, неотрицательного скаляра. Если коэффициент obj имеет магнитуду меньше, чем Delta, obj устанавливает этот коэффициент равным 0и, таким образом, вы можете исключить соответствующий предиктор из модели. Набор Delta к более высокому значению, чтобы исключить больше предикторов.

Delta должно быть 0 для квадратичных дискриминантных моделей.

Изменение Delta с использованием точечной нотации: obj.Delta = newDelta.

DeltaPredictor

Вектор строки длиной, равной числу предикторов в obj. Если DeltaPredictor(i) < Delta затем коэффициент i модели 0.

Если obj является квадратичной дискриминантной моделью, все элементы DeltaPredictor являются 0.

DiscrimType

Символьный вектор, определяющий тип дискриминанта. Один из:

  • 'linear'

  • 'quadratic'

  • 'diagLinear'

  • 'diagQuadratic'

  • 'pseudoLinear'

  • 'pseudoQuadratic'

Изменение DiscrimType с использованием точечной нотации: obj.DiscrimType = newDiscrimType.

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

Gamma

Значение параметра регуляризации Гамма, скаляр из 0 кому 1. Изменение Gamma с использованием точечной нотации: obj.Gamma = newGamma.

  • Если установить 1 для линейного дискриминанта дискриминант устанавливает свой тип равным 'diagLinear'.

  • Если задано значение между MinGamma и 1 для линейного дискриминанта дискриминант устанавливает свой тип равным 'linear'.

  • Нельзя установить значения ниже значения MinGamma собственность.

  • Для квадратичного дискриминанта можно задать либо 0 (для DiscrimType 'quadratic') или 1 (для DiscrimType 'diagQuadratic').

LogDetSigma

Логарифм определителя ковариационной матрицы внутри класса. Тип LogDetSigma зависит от типа дискриминанта:

  • Скаляр для линейного дискриминантного анализа

  • Вектор длины K для квадратичного дискриминантного анализа, где K - количество классов

MinGamma

Неотрицательный скаляр, минимальное значение параметра Гамма, так что корреляционная матрица является обратимой. Если корреляционная матрица не является единственной, MinGamma является 0.

Mu

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

PredictorNames

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

Prior

Числовой вектор предшествующих вероятностей для каждого класса. Порядок элементов Prior соответствует порядку классов в ClassNames.

Добавить или изменить Prior вектор с использованием точечной нотации: obj.Prior = priorVector.

ResponseName

Символьный вектор, описывающий переменную ответа Y.

ScoreTransform

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

Реализация точечной нотации для добавления или изменения ScoreTransform с помощью одной из следующих функций:

  • cobj.ScoreTransform = 'function'

  • cobj.ScoreTransform = @function

Sigma

Ковариационная матрица или матрицы внутри класса. Размеры зависят от DiscrimType:

  • 'linear' (по умолчанию) - Матрица размера pоколо-p, где p - количество предикторов

  • 'quadratic' - Массив размеров pоколо-pоколо-K, где K - количество классов

  • 'diagLinear' - Вектор строки длины p

  • 'diagQuadratic' - Массив размеров 1около-pоколо-K

  • 'pseudoLinear' - Матрица размера pоколо-p

  • 'pseudoQuadratic' - Массив размеров pоколо-pоколо-K

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

compareHoldoutСравнение точности двух классификационных моделей с использованием новых данных
edgeКрай классификации
limeЛокальные интерпретируемые модели-агностические объяснения (LIME)
logpЛогарифмическая безусловная плотность вероятности для классификатора дискриминантного анализа
lossОшибка классификации
mahalРасстояние Махаланобиса до классовых средств
marginПоля классификации
nLinearCoeffsКоличество ненулевых линейных коэффициентов
partialDependenceВычислить частичную зависимость
plotPartialDependenceСоздание графиков частичной зависимости (PDP) и индивидуального условного ожидания (ICE)
predictПрогнозирование меток с использованием модели классификации анализа дискриминантов
shapleyЗначения Шапли

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

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

Примеры

свернуть все

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

load fisheriris

Создайте классификатор дискриминантного анализа для данных выборки.

fullobj = fitcdiscr(meas,species);

Создайте компактный классификатор дискриминантного анализа и сравните его размер с размером полного классификатора.

cobj = compact(fullobj);
b = whos('fullobj'); % b.bytes = size of fullobj
c = whos('cobj'); % c.bytes = size of cobj
[b.bytes c.bytes] % shows cobj uses 60% of the memory
ans = 1×2

       18291       11678

Компактный классификатор меньше полного классификатора.

Построить компактный классификатор дискриминантного анализа из средств и ковариаций данных радужки Фишера.

load fisheriris
mu(1,:) = mean(meas(1:50,:));
mu(2,:) = mean(meas(51:100,:));
mu(3,:) = mean(meas(101:150,:));

mm1 = repmat(mu(1,:),50,1);
mm2 = repmat(mu(2,:),50,1);
mm3 = repmat(mu(3,:),50,1);
cc = meas;
cc(1:50,:) = cc(1:50,:) - mm1;
cc(51:100,:) = cc(51:100,:) - mm2;
cc(101:150,:) = cc(101:150,:) - mm3;
sigstar = cc' * cc / 147;
cpct = makecdiscr(mu,sigstar,...
    'ClassNames',{'setosa','versicolor','virginica'});

Подробнее

развернуть все

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

.
Представлен в R2011b