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 = 
  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 имя аргумента и 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