CompactClassificationDiscriminant

Пакет: classreg.learning.classif

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

Описание

A 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 если его класс true 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-by- p матрица класса скалярных значений означает size. 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

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

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