exponenta event banner

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);

Просмотрите ошибку неправильной классификации в выборке (повторная выборка).

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 использование конструкции кодирования «один против одного».

Просмотрите ошибку неправильной классификации в выборке (повторная выборка).

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' и положительную определенную матрицу скалярных значений, представляющую ковариационную матрицу при вычислении расстояния Махаланобиса. Этот аргумент допустим только в том случае, если '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'Один минус коэффициент Джаккарда, процент отличных от нуля координат.
'mahalanobis'Расстояние Махаланобиса, вычисленное с использованием положительной определенной ковариационной матрицы C. Значение по умолчанию C - выборка ковариационной матрицы X, как вычислено cov(X,'omitrows'). Задание другого значения для C, используйте 'Cov' аргумент пары имя-значение.
'minkowski'Минковская дистанция. Показатель по умолчанию: 2. Чтобы указать другую степень, используйте 'Exponent' аргумент пары имя-значение.
'seuclidean'Стандартизированное евклидово расстояние. Каждая разность координат между X и масштабируется точка запроса, означающая деление на значение масштаба S. Значение по умолчанию S является стандартным отклонением, вычисленным из X, S = std(X,'omitnan'). Чтобы указать другое значение для 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/дистанцие2
@fcnfcn - функция, которая принимает матрицу неотрицательных расстояний и возвращает матрицу того же размера, содержащую неотрицательные веса расстояний. Например, 'squaredinverse' эквивалентно @(d)d.^(-2).

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

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

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

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

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

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

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

Типы данных: logical

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

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

    • 'euclidean'

    • 'cityblock'

    • 'minkowski'

    • 'chebychev'

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

Значение по умолчанию: 'kdtree' когда X имеет 10 или меньше столбцов, X не разрежен или gpuArray, и метрика расстояния является '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

Типы данных: logical

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

свернуть все

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

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

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