makecdiscr

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

Описание

пример

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

пример

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

Примеры

свернуть все

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

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-by- p матрица класса скалярных значений означает size. K количество классов и p - количество предикторов. Каждая строка Mu представляет среднее значение многомерного нормального распределения соответствующего класса. Индексы классов указаны в ClassNames атрибут.

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

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

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

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

Стоимость неправильной классификации, заданная как разделенная разделенными запятой парами, состоящая из 'Cost' и квадратную матрицу, где Cost(i,j) - стоимость классификации точки в класс j если его класс true 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 является трехмерным массивом.

Введенный в R2014a