k - шаблон классификатора по ближайшему соседу
возвращает шаблон k-ближайших соседей (KNN), подходящий для обучения ансамблей или моделей выхода кода с исправлением ошибок (ECOC) мультикласса.t
= templateKNN()
Если вы задаете шаблон по умолчанию, то во время обучения программное обеспечение использует значения по умолчанию для всех входных параметров.
Задайте t
как учащийся в fitcensemble
или fitcecoc
.
создает шаблон с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение".t
= templateKNN(Name,Value
)
Например, можно задать метод поиска по ближайшему соседу, количество ближайших соседей для поиска или метрику расстояния.
Если вы отображаете t
в Командном окне, затем все опции появляются пустыми ([]
), кроме тех, которые вы задаете используя аргументы пары "имя-значение". Во время обучения программа использует значения по умолчанию для пустых опций.
Создайте шаблон k-ближайших соседей nondefault для использования в 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-ближайших соседей nondefault для использования в 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 ближайших соседей с помощью измерения расстояния Минковского.'BreakTies'
- Алгоритм разрыва связей'smallest'
(по умолчанию) | 'nearest'
| 'random'
Алгоритм разрыва связей, используемый predict
метод, если несколько классов имеют одинаковую наименьшую стоимость, заданную как разделенная разделенными запятой парами, состоящая из 'BreakTies'
и одно из следующих:
'smallest'
- Используйте наименьший индекс среди связанных групп.
'nearest'
- Используйте класс с ближайшим соседом среди связанных групп.
'random'
- Используйте случайный tiebreaker среди связанных групп.
По умолчанию связи возникают, когда несколько классов имеют одинаковое количество ближайших точек среди K
ближайшие соседи.
Пример: 'BreakTies','nearest'
'BucketSize'
- Максимальное количество точек данных в узле50
(по умолчанию) | положительное целое значениеМаксимальное количество точек данных в конечном узле kd-дерева, заданное как разделенная разделенными запятой парами, состоящая из 'BucketSize'
и положительное целое значение. Этот аргумент значим только тогда, когда NSMethod
является 'kdtree'
.
Пример: 'BucketSize',40
Типы данных: single
| double
'Cov'
- Ковариационная матрицаcov(X,'omitrows')
(по умолчанию) | положительно определенную матрицу скалярных значенийКовариационная матрица, заданная как разделенная разделенными запятой парами, состоящая из 'Cov'
и положительная определенная матрица скалярных значений, представляющих ковариационную матрицу при вычислении расстояния Махаланобиса. Этот аргумент действителен только при 'Distance'
является 'mahalanobis'
.
Вы не можете одновременно задать 'Standardize'
и любой из 'Scale'
или 'Cov'
.
Типы данных: single
| double
'Distance'
- Метрика расстояния'cityblock'
| 'chebychev'
| 'correlation'
| 'cosine'
| 'euclidean'
| 'hamming'
| указатель на функцию |...Метрика расстояния, заданная как разделенная разделенными запятой парами, состоящая из 'Distance'
и допустимое имя метрики расстояния или указатель на функцию. Допустимые имена метрики расстояния зависят от вашего выбора метода neighbor-searcher (см 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' | Один минус выборки корреляции ранга Спирмана между наблюдениями (рассматриваются как последовательности значений). |
|
Указатель на функцию расстояния. function D2 = distfun(ZI,ZJ) % calculation of distance ...
|
Если вы задаете CategoricalPredictors
как 'all'
, тогда метрика расстояния по умолчанию 'hamming'
. В противном случае метрика расстояния по умолчанию является 'euclidean'
.
Определения см. в разделе Метрики расстояния.
Пример: 'Distance','minkowski'
Типы данных: char
| string
| function_handle
'DistanceWeight'
- Функция взвешивания расстояний'equal'
(по умолчанию) | 'inverse'
| 'squaredinverse'
| указатель на функциюФункция взвешивания расстояния, заданная как разделенная разделенными запятой парами, состоящая из 'DistanceWeight'
и указатель на функцию или одно из значений в этой таблице.
Значение | Описание |
---|---|
'equal' | Без взвешивания |
'inverse' | Вес 1/расстояние |
'squaredinverse' | Вес 1/расстояние2 |
| fcn является функцией, которая принимает матрицу неотрицательных расстояний и возвращает матрицу того же размера, содержащую неотрицательные веса расстояний. Для примера, 'squaredinverse' эквивалентно @(d)d.^(-2) . |
Пример: 'DistanceWeight','inverse'
Типы данных: char
| string
| function_handle
'Exponent'
- показатель расстояния Минковского2
(по умолчанию) | положительное скалярное значениеПоказатель расстояния Минковского, заданный как разделенная разделенными запятой парами, состоящая из 'Exponent'
и положительная скалярная величина значение. Этот аргумент действителен только при 'Distance'
является 'minkowski'
.
Пример: 'Exponent',3
Типы данных: single
| double
'IncludeTies'
- Флаг включения галстукаfalse
(по умолчанию) | true
Флаг включения галстука, заданный как разделенная разделенными запятой парами, состоящая из 'IncludeTies'
и логическое значение, указывающее, predict
ли включает все соседи, значения расстояния которых равны
K
самое маленькое расстояние. Если IncludeTies
является true
, predict
включает всех этих соседей. В противном случае predict
использует точно K
соседи.
Пример: 'IncludeTies',true
Типы данных: logical
'NSMethod'
- Метод поиска по ближайшему соседу'kdtree'
| 'exhaustive'
Метод поиска по ближайшему соседу, заданный как разделенная разделенными запятой парами, состоящая из 'NSMethod'
и 'kdtree'
или 'exhaustive'
.
'kdtree'
- Создает и использует kd-дерево для поиска ближайших соседей. 'kdtree'
действителен, когда метрика расстояния является одной из следующих:
'euclidean'
'cityblock'
'minkowski'
'chebychev'
'exhaustive'
- Использует алгоритм исчерпывающего поиска. При предсказании класса новой точки xnew
программа вычисляет значения расстояния от всех точек в X
на xnew
найти ближайших соседей.
Значение по умолчанию является 'kdtree'
когда X
имеет 10
или меньше столбцов, X
не является разреженным или gpuArray
, и метрика расстояния является 'kdtree'
тип; в противном случае 'exhaustive'
.
Пример: 'NSMethod','exhaustive'
'NumNeighbors'
- Количество ближайших соседей для поиска1
(по умолчанию) | положительное целое значениеКоличество ближайших соседей в X
поиск для классификации каждой точки при прогнозировании, заданный как разделенная разделенными запятой парами, состоящая из 'NumNeighbors'
и положительное целое значение.
Пример: 'NumNeighbors',3
Типы данных: single
| double
'Scale'
- Шкала расстоянияstd(X,'omitnan')
(по умолчанию) | вектор неотрицательных скалярных значенийШкала расстояния, заданная как разделенная разделенными запятой парами, состоящая из 'Scale'
и вектор, содержащий неотрицательные скалярные значения с длиной, равной количеству столбцов в X
. Каждое различие координат между X
и точка запроса масштабируется соответствующим элементом Scale
. Этот аргумент действителен только при 'Distance'
является 'seuclidean'
.
Вы не можете одновременно задать 'Standardize'
и любой из 'Scale'
или 'Cov'
.
Типы данных: single
| double
'Standardize'
- Флаг для стандартизации предикторовfalse
(по умолчанию) | true
Флаг для стандартизации предикторов, заданный как разделенная разделенными запятой парами, состоящая из 'Standardize'
и true
(1
) или false
(0)
.
Если вы задаете 'Standardize',true
, затем программное обеспечение центрирует и масштабирует каждый столбец данных предиктора (X
) средним значением столбца и стандартным отклонением, соответственно.
Программа не стандартизирует категориальные предикторы и выдает ошибку, если все предикторы категоричны.
Вы не можете одновременно задать 'Standardize',1
и любой из 'Scale'
или 'Cov'
.
Это хорошая практика, чтобы стандартизировать данные предиктора.
Пример: 'Standardize',true
Типы данных: logical
t
- k шаблон классификации NNk шаблон классификации NN, подходящий для обучения ансамблей или многоклассовых моделей выходного кода с исправлением ошибок (ECOC), возвращаемый в качестве объекта шаблона. Передайте t
кому fitcensemble
или fitcecoc
чтобы указать, как создать классификатор KNN для модели ансамбля или ECOC, соответственно.
Если вы отображаете t
в Командное окно, затем все, не заданные опции появляются пустыми ([]
). Однако во время обучения программа заменяет пустые опции соответствующими значениями по умолчанию.
ClassificationKNN
| ExhaustiveSearcher
| fitcecoc
| fitcensemble
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.