makecdiscr

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

Описание

пример

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

пример

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

Примеры

свернуть все

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

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; % unbiased estimator of sigma
cpct = makecdiscr(mu,sigstar,...
   'ClassNames',{'setosa','versicolor','virginica'})
cpct = 
  classreg.learning.classif.CompactClassificationDiscriminant
           PredictorNames: {'x1'  'x2'  'x3'  'x4'}
             ResponseName: 'Y'
    CategoricalPredictors: []
               ClassNames: {'setosa'  'versicolor'  'virginica'}
           ScoreTransform: 'none'
              DiscrimType: 'linear'
                       Mu: [3x4 double]
                   Coeffs: [3x3 struct]


  Properties, Methods

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

свернуть все

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

Типы данных: single | double

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

  • Для линейного дискриминанта, Sigma симметричная, положительная полуопределенная матрица размера p- p, где p количество предикторов.

  • Для квадратичного дискриминанта, Sigma массив размера p- p- K, где K количество классов. Для каждого i, Sigma(:,:,i) симметричная, положительная полуопределенная матрица.

Типы данных: single | double

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'ClassNames',{'setosa' 'versicolor' 'virginica'} задает классификатор дискриминантного анализа, который использует 'setosa', 'versicolor', и 'virginica' как сгруппированные переменные.

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

Значением по умолчанию является 1:K, где K количество классов (количество строк Mu).

Пример: 'ClassNames',{'setosa' 'versicolor' 'virginica'}

Типы данных: single | double | logical | char | string | cell

Стоимость misclassification, заданного как разделенная запятой пара, состоящая из 'Cost' и квадратная матрица, где Cost(i,j) стоимость классификации точки в класс j если его истинным классом является i. В качестве альтернативы Cost может быть структура S наличие двух полей: S.ClassNames содержа названия группы как переменную того же типа как y, и S.ClassificationCosts содержа матрицу стоимости.

Значением по умолчанию является Cost(i,j)=1 если i~=j, и Cost(i,j)=0 если i=j.

Типы данных: single | double | struct

Имена переменного предиктора, заданные как разделенная запятой пара, состоящая из 'PredictorNames' и массив строк или массив ячеек из символьных векторов, содержащий имена для переменных предикторов, в порядке, в котором они появляются в X.

Типы данных: string | cell

Априорные вероятности для каждого класса, заданного как разделенная запятой пара, состоящая из 'Prior' и одно из следующего:

  • 'uniform', значение всех априорных вероятностей класса равно

  • Вектор, содержащий одно скалярное значение для каждого класса

  • Структура S с двумя полями:

    • S.ClassNames содержа имена классов как переменную того же типа как ClassNames

    • S.ClassProbs содержа вектор соответствующих вероятностей

Типы данных: char | string | single | double | struct

Имя переменной отклика, заданное как разделенная запятой пара, состоящая из 'ResponseName' и вектор символов или скаляр строки, содержащий имя переменной отклика y.

Пример: 'ResponseName','Response'

Типы данных: char | string

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

свернуть все

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

Советы

  • Можно изменить дискриминантный тип с помощью записи через точку после построения cobj:

    cobj.DiscrimType = 'discrimType'

    где discrimType один из 'linear', 'quadratic', 'diagLinear', 'diagQuadratic', 'pseudoLinear', или 'pseudoQuadratic'. Вы можете измениться между линейными типами или между квадратичными типами, но не можете измениться между линейным и квадратичным типом.

  • cobj линейный классификатор когда Sigma матрица. cobj квадратичный классификатор когда Sigma 3D массив.

Введенный в R2014a