templateKNN

k- соседний шаблон классификатора

Синтаксис

t = templateKNN()
t = templateKNN(Name,Value)

Описание

пример

t = templateKNN() возвращает шаблон ученика соседа k-nearest (KNN), подходящий для учебных ансамблей или моделей мультикласса выходного кода с коррекцией ошибок (ECOC).

Если вы задаете шаблон по умолчанию, то программное обеспечение использует значения по умолчанию для всех входных параметров во время обучения.

Задайте t как ученика в fitcensemble или fitcecoc.

пример

t = templateKNN(Name,Value) создает шаблон с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение".

Например, можно задать самый близкий соседний метод поиска, количество самых близких соседей, чтобы найти, или метрика расстояния.

Если вы отображаете t в Командном окне, то все опции кажутся пустыми ([]), кроме тех, которые вы задаете аргументы пары "имя-значение" использования. Во время обучения программное обеспечение использует значения по умолчанию для пустых опций.

Примеры

свернуть все

Создайте соседний шаблон k-nearest не по умолчанию для использования в fitcensemble.

Загрузите ирисовый набор данных Фишера.

load fisheriris

Создайте шаблон для 5-самого близкого соседнего поиска и задайте, чтобы стандартизировать предикторы.

t = templateKNN('NumNeighbors',5,'Standardize',1)
t = 
Fit template for classification KNN.

       NumNeighbors: 5
           NSMethod: ''
           Distance: ''
         BucketSize: ''
        IncludeTies: []
     DistanceWeight: []
          BreakTies: []
           Exponent: []
                Cov: []
              Scale: []
    StandardizeData: 1
            Version: 1
             Method: 'KNN'
               Type: 'classification'

Все свойства объекта шаблона пусты за исключением NumNeighbors, Method, StandardizeData и Type. Когда вы задаете t как ученик, программное обеспечение заполняет пустые свойства с их соответствующими значениями по умолчанию.

Задайте t как слабого ученика для ансамбля классификации.

Mdl = fitcensemble(meas,species,'Method','Subspace','Learners',t);

Отобразите в выборке (перезамена) misclassification ошибка.

L = resubLoss(Mdl)
L = 0.0600

Создайте соседний шаблон k-nearest не по умолчанию для использования в fitcecoc.

Загрузите ирисовый набор данных Фишера.

load fisheriris

Создайте шаблон для 5-самого близкого соседнего поиска и задайте, чтобы стандартизировать предикторы.

t = templateKNN('NumNeighbors',5,'Standardize',1)
t = 
Fit template for classification KNN.

       NumNeighbors: 5
           NSMethod: ''
           Distance: ''
         BucketSize: ''
        IncludeTies: []
     DistanceWeight: []
          BreakTies: []
           Exponent: []
                Cov: []
              Scale: []
    StandardizeData: 1
            Version: 1
             Method: 'KNN'
               Type: 'classification'

Все свойства объекта шаблона пусты за исключением NumNeighbors, Method, StandardizeData и Type. Когда вы задаете t как ученик, программное обеспечение заполняет пустые свойства с их соответствующими значениями по умолчанию.

Задайте t как бинарного ученика для модели мультикласса ECOC.

Mdl = fitcecoc(meas,species,'Learners',t);

По умолчанию программное обеспечение обучает Mdl с помощью одного по сравнению с одного кодирующего проекта.

Отобразите в выборке (перезамена) misclassification ошибка.

L = resubLoss(Mdl,'LossFun','classiferror')
L = 0.0467

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

свернуть все

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

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

Пример: 'NumNeighbors',4,'Distance','minkowski' задает 4-самый близкий соседний шаблон классификатора с помощью меры по расстоянию Минковскего.

Повреждающий связь алгоритм, используемый методом predict, если несколько классов имеют ту же самую маленькую стоимость, заданную как пара, разделенная запятой, состоящая из 'BreakTies' и одно из следующего:

  • 'smallest' — Используйте самый маленький индекс среди связанных групп.

  • самый близкий Используйте класс с самым близким соседом среди связанных групп.

  • 'random' — Используйте случайное дополнительное время среди связанных групп.

По умолчанию связи происходят, когда несколько классов имеют то же количество самых близких точек среди K самые близкие соседи.

Пример: 'BreakTies','nearest'

Максимальное количество точек данных в вершине kd-дерева, заданного как пара, разделенная запятой, состоящая из 'BucketSize' и положительного целочисленного значения. Этот аргумент значим только, когда NSMethod является 'kdtree'.

Пример: 'BucketSize',40

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

Ковариационная матрица, заданная как пара, разделенная запятой, состоящая из 'Cov' и положительная определенная матрица скалярных значений, представляющих ковариационную матрицу при вычислении расстояния Mahalanobis. Этот аргумент только допустим, когда 'Distance' является 'mahalanobis'.

Вы не можете одновременно задать 'Standardize' и или 'Scale' или 'Cov'.

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

Метрика расстояния, заданная как пара, разделенная запятой, состоящая из 'Distance' и допустимого метрического имени расстояния или указателя на функцию. Допустимые метрические имена расстояния зависят от вашего выбора метода соседнего искателя (см. NSMethod).

NSMethodМетрические имена расстояния
exhaustiveЛюбая метрика расстояния ExhaustiveSearcher
kdtree'cityblock', 'chebychev', 'euclidean' или 'minkowski'

Эта таблица включает допустимые метрики расстояния ExhaustiveSearcher.

Метрические имена расстоянияОписание
'cityblock'Расстояние городского квартала.
'chebychev'Расстояние Чебычева (максимум координируют различие).
'correlation'Один минус демонстрационная линейная корреляция между наблюдениями (обработанный как последовательности значений).
'cosine'Один минус косинус включенного угла между наблюдениями (обработанный как векторы).
'euclidean'Евклидово расстояние.
'hamming'Расстояние Хемминга, процент координат, которые отличаются.
'jaccard'Один минус коэффициент Jaccard, процент ненулевых координат, которые отличаются.
'mahalanobis'Расстояние Mahalanobis, вычисленное использование положительной определенной ковариационной матрицы C. Значение по умолчанию C является матрицей выборочной ковариации X, как вычислено nancov(X). Чтобы задать различное значение для C, используйте аргумент пары "имя-значение" 'Cov'.
'minkowski'Расстояние Минковскего. Экспонентой по умолчанию является 2. Чтобы задать различную экспоненту, используйте аргумент пары "имя-значение" 'Exponent'.
'seuclidean'Стандартизированное Евклидово расстояние. Каждое координатное различие между X и точкой запроса масштабируется, означая разделенный на значение шкалы S. Значение по умолчанию S является стандартным отклонением, вычисленным из X,   S = nanstd(X). Чтобы задать другое значение для S, используйте аргумент пары "имя-значение" Scale.
'spearman'Один минус порядковая корреляция демонстрационного Копьеносца между наблюдениями (обработанный как последовательности значений).
@distfun

Указатель на функцию расстояния. distfun имеет форму

function D2 = distfun(ZI,ZJ)
% calculation of  distance
...
где

  • ZI является 1-by-N вектор, содержащий одну строку X или Y.

  • ZJ является M2-by-N матрица, содержащая несколько строк X или Y.

  • D2 является M2-by-1 вектор расстояний, и D2(k) является расстоянием между наблюдениями ZI и ZJ(k,:).

Если вы задаете CategoricalPredictors как 'all', то метрикой расстояния по умолчанию является 'hamming'. В противном случае метрикой расстояния по умолчанию является 'euclidean'.

Для определений смотрите Метрики Расстояния.

Пример: 'Distance','minkowski'

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

Функция взвешивания расстояния, заданная как пара, разделенная запятой, состоящая из 'DistanceWeight' и или указатель на функцию или одно из значений в этой таблице.

ЗначениеОписание
'equal'Никакое взвешивание
'inverse'Вес 1/дистанцировать
'squaredinverse'Вес является 1/distance2
@fcnfcn является функцией, которая принимает матрицу неотрицательных расстояний и возвращает матрицу тот же размер, содержащий неотрицательные веса расстояния. Например, 'squaredinverse' эквивалентен @(d)d.^(-2).

Пример: 'DistanceWeight','inverse'

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

Экспонента расстояния Минковскего, заданная как пара, разделенная запятой, состоящая из 'Exponent' и значения положительной скалярной величины. Этот аргумент только допустим, когда 'Distance' является 'minkowski'.

Пример: 'Exponent',3

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

Свяжите флаг включения, заданный как пара, разделенная запятой, состоящая из 'IncludeTies' и логического значения, указывающего, включает ли predict всех соседей, значения расстояния которых равны K th наименьшее расстояние. Если IncludeTies является true, predict включает всех этих соседей. В противном случае predict использует точно соседей K.

Пример: 'IncludeTies',true

Типы данных: логический

Самый близкий соседний метод поиска, заданный как пара, разделенная запятой, состоящая из 'NSMethod' и 'kdtree' или 'exhaustive'.

  • 'kdtree' — Создает и использует kd-дерево, чтобы найти самых близких соседей. 'kdtree' допустим, когда метрика расстояния является одним из следующего:

    • 'euclidean'

    • 'cityblock'

    • 'minkowski'

    • 'chebychev'

  • 'exhaustive' — Использует алгоритм исчерпывающего поиска. При предсказании класса новой точки xnew программное обеспечение вычисляет значения расстояния из всех точек в X к xnew, чтобы найти самых близких соседей.

Значением по умолчанию является 'kdtree', когда X имеет 10 или меньше столбцов, X не разрежен, и метрика расстояния является типом 'kdtree'; в противном случае, 'exhaustive'.

Пример: 'NSMethod','exhaustive'

Количество самых близких соседей в X, чтобы найти для классификации каждой точки при предсказании, заданный как пара, разделенная запятой, состоящая из 'NumNeighbors' и положительного целочисленного значения.

Пример: 'NumNeighbors',3

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

Шкала расстояния, заданная как пара, разделенная запятой, состоящая из 'Scale' и вектора, содержащего неотрицательные скалярные значения с длиной, равняется количеству столбцов в X. Каждое координатное различие между X и точкой запроса масштабируется соответствующим элементом Scale. Этот аргумент только допустим, когда 'Distance' является 'seuclidean'.

Вы не можете одновременно задать 'Standardize' и или 'Scale' или 'Cov'.

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

Отметьте, чтобы стандартизировать предикторы, заданные как пара, разделенная запятой, состоящая из 'Standardize' и true (1) или false (0).

Если вы устанавливаете 'Standardize',true, то центры программного обеспечения и масштабируют каждый столбец данных о предикторе (X) столбцом среднее и стандартное отклонение, соответственно.

Программное обеспечение не стандартизирует категориальные предикторы и выдает ошибку, если все предикторы являются категориальными.

Вы не можете одновременно задать 'Standardize',1 и или 'Scale' или 'Cov'.

Это - хорошая практика, чтобы стандартизировать данные о предикторе.

Пример: 'Standardize',true

Типы данных: логический

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

свернуть все

k шаблон классификации NN, подходящий для учебных ансамблей или моделей мультикласса выходного кода с коррекцией ошибок (ECOC), возвращенных как объект шаблона. Передайте t fitcensemble или fitcecoc, чтобы задать, как создать классификатор KNN для ансамбля или модели ECOC, соответственно.

Если вы отображаете t к Командному окну, то все, незаданные опции кажутся пустыми ([]). Однако программное обеспечение заменяет пустые опции на их соответствующие значения по умолчанию во время обучения.

Введенный в R2014a