templateKNN

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

Описание

пример

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

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

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

пример

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

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

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

Примеры

свернуть все

Создайте шаблон k - ближайших соседей не по умолчанию для использования в 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 - ближайших соседей не по умолчанию для использования в 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 имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

  • '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- N вектор, содержащий одну строку X или Y.

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

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

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

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

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

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

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

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

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

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

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

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

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

Свяжите флаг включения, заданный как разделенная запятой пара, состоящая из 'IncludeTies' и логическое значение, указывающее, ли predict включает всех соседей, значения расстояния которых равны Kth наименьшее расстояние. Если 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