exponenta event banner

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около-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

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

Представлен в R2014a