CompactClassificationDiscriminant

Пакет: classreg.learning.classif

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

Описание

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

Конструкция

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

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

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

obj

Классификатор дискриминантного анализа, созданное использование fitcdiscr.

Свойства

BetweenSigma

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

CategoricalPredictors

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

ClassNames

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

Coeffs

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

  • DiscrimType

  • Class1ClassNames (i)

  • Class2ClassNames (j)

  • Const — Скаляр

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

  • Quadraticp-by-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

Значение порога 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-by-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-by-p, где p является количеством предикторов

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

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

  • 'diagQuadratic' — Массив размера 1-by-p-by-K

  • 'pseudoLinear' — Матрица размера p-by-p

  • 'pseudoQuadratic' — Массив размера p-by-p-by-K

Методы

реброРебро классификации
logPРегистрируйте безусловную плотность вероятности для классификатора дискриминантного анализа
потеряОшибка классификации
mahalРасстояние Mahalanobis до средних значений класса
полеПоля классификации
nLinearCoeffsКоличество ненулевых линейных коэффициентов
предсказатьПредскажите метки с помощью модели классификации дискриминантных анализов

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

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

Примеры

свернуть все

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

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

       18631       11994

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

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

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