k- соседняя классификация
ClassificationKNN
модель классификации ближайшего соседа, в которой можно изменить и метрику расстояния и количество самых близких соседей. Поскольку ClassificationKNN
классификатор хранит обучающие данные, можно использовать модель, чтобы вычислить предсказания перезамены. В качестве альтернативы используйте модель, чтобы классифицировать новые наблюдения с помощью predict
метод.
Создайте ClassificationKNN
модель с помощью fitcknn
.
BreakTies
— Повреждающий связь алгоритм'smallest'
(значение по умолчанию) | 'nearest'
| 'random'
Повреждающий связь алгоритм используется predict
когда несколько классов имеют ту же самую маленькую стоимость в виде одного из следующего:
'smallest'
— Используйте самый маленький индекс среди связанных групп.
'nearest'
— Используйте класс с самым близким соседом среди связанных групп.
'random'
— Используйте случайное дополнительное время среди связанных групп.
По умолчанию связи происходят, когда несколько классов имеют то же количество самых близких точек среди k самые близкие соседи. BreakTies
применяется когда IncludeTies
false
.
Измените BreakTies
использование записи через точку: mdl.BreakTies = newBreakTies
.
Distance
— Метрика расстояния'cityblock'
| 'chebychev'
| 'correlation'
| 'cosine'
| 'euclidean'
| указатель на функцию |...Метрика расстояния в виде вектора символов или указателя на функцию. Позволенные значения зависят от 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 , установите DistParameter свойство mdl использование записи через точку. |
'minkowski' | Расстояние Минковскего. Экспонентой по умолчанию является 2 . Чтобы задать различную экспоненту, установите DistParameter свойство mdl использование записи через точку. |
'seuclidean' | Стандартизированное Евклидово расстояние. Каждое координатное различие между X и точка запроса масштабируется, означая разделенный на значение шкалы S . Значение по умолчанию S стандартное отклонение, вычисленное из X , S = nanstd(X) . Задавать другое значение для S , установите DistParameter свойство mdl использование записи через точку. |
'spearman' | Один минус порядковая корреляция демонстрационного Копьеносца между наблюдениями (обработанный как последовательности значений). |
@ |
Указатель на функцию расстояния. function D2 = distfun(ZI,ZJ) % calculation of distance ...
|
Для получения дополнительной информации смотрите Метрики Расстояния.
Измените Distance
использование записи через точку: mdl.Distance = newDistance
.
Если NSMethod
'kdtree'
, можно использовать запись через точку, чтобы изменить Distance
только для метрик 'cityblock'
, 'chebychev'
, 'euclidean'
, и 'minkowski'
.
Типы данных: char |
function_handle
DistanceWeight
— Функция взвешивания расстояния'equal'
| 'inverse'
| 'squaredinverse'
| указатель на функциюФункция взвешивания расстояния в виде одного из значений в этой таблице.
Значение | Описание |
---|---|
'equal' | Никакое взвешивание |
'inverse' | Вес 1/дистанцировать |
'squaredinverse' | Вес является 1/distance2 |
| fcn функция, которая принимает матрицу неотрицательных расстояний и возвращает матрицу, одного размера содержащий неотрицательные веса расстояния. Например, 'squaredinverse' эквивалентно @(d)d.^(–2) . |
Измените DistanceWeight
использование записи через точку: mdl.DistanceWeight = newDistanceWeight
.
Типы данных: char |
function_handle
DistParameter
— Параметр для метрики расстоянияПараметр для метрики расстояния в виде одного из значений описан в этой таблице.
Метрика расстояния | Параметр |
---|---|
'mahalanobis' | Положительная определенная ковариационная матрица C |
'minkowski' | Экспонента расстояния Минковскего, положительная скалярная величина |
'seuclidean' | Вектор положительных значений шкалы с длиной равняется количеству столбцов X |
Для любой другой метрики расстояния, значения DistParameter
должен быть []
.
Можно изменить DistParameter
использование записи через точку: mdl.DistParameter = newDistParameter
. Однако, если Distance
'mahalanobis'
или 'seuclidean'
, затем вы не можете изменить DistParameter
.
Типы данных: single
| double
IncludeTies
— Свяжите флаг включенияfalse
(значение по умолчанию) | true
Свяжите флаг включения, указывающий ли predict
включает всех соседей, значения расстояния которых равны k th наименьшее расстояние в виде false
или true
. Если IncludeTies
true
, predict
включает всех этих соседей. В противном случае, predict
использование точно соседи k (см. BreakTies
свойство.
Измените IncludeTies
использование записи через точку: mdl.IncludeTies = newIncludeTies
.
Типы данных: логический
NSMethod
— Самый близкий соседний метод поиска'kdtree'
| 'exhaustive'
Это свойство доступно только для чтения.
Самый близкий соседний метод поиска в виде любого 'kdtree'
или 'exhaustive'
.
'kdtree'
— Создает и использует Kd-дерево, чтобы найти самых близких соседей.
'exhaustive'
— Использует алгоритм исчерпывающего поиска. При предсказании класса новой точки xnew
, программное обеспечение вычисляет значения расстояния из всех точек в X
к xnew
найти самых близких соседей.
Значением по умолчанию является 'kdtree'
когда X
имеет 10
или меньше столбцов, X
не разреженно, и метрикой расстояния является 'kdtree'
ввод. В противном случае значением по умолчанию является 'exhaustive'
.
NumNeighbors
— Количество самых близких соседейКоличество самых близких соседей в X
используемый, чтобы классифицировать каждую точку во время предсказания в виде положительного целочисленного значения.
Измените NumNeighbors
использование записи через точку: mdl.NumNeighbors = newNumNeighbors
.
Типы данных: single
| double
CategoricalPredictors
— Категориальные индексы предиктора[]
| вектор положительных целых чиселЭто свойство доступно только для чтения.
Категориальные индексы предиктора в виде вектора положительных целых чисел. CategoricalPredictors
содержит значения индекса, соответствующие столбцам данных о предикторе, которые содержат категориальные предикторы. Если ни один из предикторов не является категориальным, то это свойство пусто ([]
).
Типы данных: double
ClassNames
— Имена классов в обучающих данных Y
Это свойство доступно только для чтения.
Имена классов в обучающих данных Y
с копиями, удаленными в виде категориального или символьного массива, логического или числового вектора или массива ячеек из символьных векторов. ClassNames
имеет совпадающий тип данных как Y
. (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)
Типы данных: categorical
| char
| logical
| single
| double
| cell
Cost
— Стоимость misclassificationСтоимость misclassification точки в виде квадратной матрицы. Cost(i,j)
стоимость классификации точки в класс j
если его истинным классом является i
(то есть, строки соответствуют истинному классу, и столбцы соответствуют предсказанному классу). Порядок строк и столбцов в Cost
соответствует порядку классов в ClassNames
. Количество строк и столбцов в Cost
количество уникальных классов в ответе.
По умолчанию, Cost(i,j) = 1
если i ~= j
, и Cost(i,j) = 0
если i = j
. Другими словами, стоимостью является 0
для правильной классификации и 1
для неправильной классификации.
Измените Cost
матрица с помощью записи через точку: mdl.Cost = costMatrix
.
Типы данных: single
| double
ExpandedPredictorNames
— Расширенные имена предиктораЭто свойство доступно только для чтения.
Расширенный предиктор называет в виде массива ячеек из символьных векторов.
Если кодирование использования модели для категориальных переменных, то ExpandedPredictorNames
включает имена, которые описывают расширенные переменные. В противном случае, ExpandedPredictorNames
совпадает с PredictorNames
.
Типы данных: cell
ModelParameters
— Параметры используются в учебном ClassificationKNN
Это свойство доступно только для чтения.
Параметры использовали в обучении ClassificationKNN
модель в виде структуры.
Типы данных: struct
Mu
— Средние значения предиктораЭто свойство доступно только для чтения.
Предиктор означает в виде числового вектора длины numel(PredictorNames)
.
Если вы не стандартизируете mdl
когда обучение модель с помощью fitcknn
, затем Mu
isempty
).
Типы данных: single
| double
NumObservations
— Количество наблюденийЭто свойство доступно только для чтения.
Количество наблюдений использовало в обучении ClassificationKNN
модель в виде положительного целочисленного скаляра. Этот номер может быть меньше количества строк в обучающих данных потому что строки, содержащие NaN
значения не являются частью подгонки.
Типы данных: double
PredictorNames
— Имена переменного предиктораЭто свойство доступно только для чтения.
Переменный предиктор называет в виде массива ячеек из символьных векторов. Имена переменных находятся в том же порядке, в котором они появляются в обучающих данных X
.
Типы данных: cell
Prior
— Априорные вероятности для каждого классаАприорные вероятности для каждого класса в виде числового вектора. Порядок элементов в Prior
соответствует порядку классов в ClassNames
.
Добавьте или измените Prior
вектор с помощью записи через точку: mdl.Prior = priorVector
.
Типы данных: single
| double
ResponseName
— Имя переменной откликаЭто свойство доступно только для чтения.
Имя переменной отклика в виде вектора символов.
Типы данных: char
RowsUsed
— Строки используются в подборе кривой[]
| логический векторЭто свойство доступно только для чтения.
Строки исходных данных X
используемый в подборе кривой ClassificationKNN
модель в виде логического вектора. Это свойство пусто, если все строки используются.
Типы данных: логический
ScoreTransform
— Выиграйте преобразование'none'
(значение по умолчанию) | 'doublelogit'
| 'invlogit'
| 'ismax'
| 'logit'
| указатель на функцию |...Выиграйте преобразование или в виде вектора символов или в виде указателя на функцию.
Эта таблица суммирует доступные векторы символов.
Значение | Описание |
---|---|
'doublelogit' | 1/(1 + e –2x) |
'invlogit' | журнал (x / (1 – x)) |
'ismax' | Устанавливает счет к классу с самым большим счетом к 1 и устанавливает музыку ко всем другим классам к 0 |
'logit' | 1/(1 + e –x) |
'none' или 'identity' | x (никакое преобразование) |
'sign' | – 1 для x <0 0 для x = 0 1 для x> 0 |
'symmetric' | 2x – 1 |
'symmetricismax' | Устанавливает счет к классу с самым большим счетом к 1 и устанавливает музыку ко всем другим классам к –1 |
'symmetriclogit' | 2/(1 + e –x) – 1 |
Для функции MATLAB® или функции вы задаете, используете ее указатель на функцию в счете, преобразовывают. Указатель на функцию должен принять матрицу (исходные баллы) и возвратить матрицу, одного размера (преобразованные баллы).
Измените ScoreTransform
использование записи через точку: mdl.ScoreTransform = newScoreTransform
.
Типы данных: char |
function_handle
Sigma
— Стандартные отклонения предиктораЭто свойство доступно только для чтения.
Стандартные отклонения предиктора в виде числового вектора длины numel(PredictorNames)
.
Если вы не стандартизируете переменные предикторы во время обучения, то Sigma
isempty
).
Типы данных: single
| double
W
— Веса наблюденияЭто свойство доступно только для чтения.
Веса наблюдения в виде вектора неотрицательных значений с одинаковым числом строк как Y
. Каждая запись в W
задает относительную важность соответствующего наблюдения в Y
.
Типы данных: single
| double
X
— Нестандартизированные данные о предиктореЭто свойство доступно только для чтения.
Нестандартизированные данные о предикторе в виде числовой матрицы. Каждый столбец X
представляет один предиктор (переменная), и каждая строка представляет одно наблюдение.
Типы данных: single
| double
Y
— Метки классаЭто свойство доступно только для чтения.
Класс помечает в виде категориального или символьного массива, логического или числового вектора или массива ячеек из символьных векторов. Каждое значение в Y
наблюдаемая метка класса для соответствующей строки в X
.
Y
имеет совпадающий тип данных как данные в Y
используемый в обучении модель. (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)
Типы данных: single
| double
| logical
| char
| cell
| categorical
HyperparameterOptimizationResults
— Оптимизация перекрестной проверки гиперпараметровBayesianOptimization
возразите | таблицаЭто свойство доступно только для чтения.
Оптимизация перекрестной проверки гиперпараметров в виде BayesianOptimization
возразите или таблица гиперпараметров и присваиваемых значений. Это свойство непусто когда 'OptimizeHyperparameters'
аргумент пары "имя-значение" непуст, когда вы создаете модель с помощью fitcknn
. Значение зависит от установки 'HyperparameterOptimizationOptions'
аргумент пары "имя-значение", когда вы создаете модель:
'bayesopt'
(значение по умолчанию) — Объект класса BayesianOptimization
'gridsearch'
или 'randomsearch'
— Таблица гиперпараметров используемые, наблюдаемые значения целевой функции (потеря перекрестной проверки), и ранг наблюдений от самого низкого (лучше всего) к (худшему) самому высокому
compareHoldout | Сравните точность двух моделей классификации с помощью новых данных |
crossval | Перекрестный подтвержденный k - самый близкий соседний классификатор |
edge | Ребро k - самый близкий соседний классификатор |
loss | Потеря k - самый близкий соседний классификатор |
margin | Поле k - самый близкий соседний классификатор |
predict | Предскажите метки с помощью k - самая близкая соседняя модель классификации |
resubEdge | Ребро k - самый близкий соседний классификатор перезаменой |
resubLoss | Потеря k - самый близкий соседний классификатор перезаменой |
resubMargin | Поле k - самый близкий соседний классификатор перезаменой |
resubPredict | Предскажите метки перезамены k - самый близкий соседний классификатор |
Обучите классификатор k - ближайших соседей ирисовым данным Фишера, где k, количество самых близких соседей в предикторах, равняется 5.
Загрузите ирисовые данные Фишера.
load fisheriris
X = meas;
Y = species;
X
числовая матрица, которая содержит четыре лепестковых измерения для 150 ирисовых диафрагм. Y
массив ячеек из символьных векторов, который содержит соответствующие ирисовые разновидности.
Обучите 5-самый близкий соседний классификатор. Стандартизируйте некатегориальные данные о предикторе.
Mdl = fitcknn(X,Y,'NumNeighbors',5,'Standardize',1)
Mdl = ClassificationKNN ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' NumObservations: 150 Distance: 'euclidean' NumNeighbors: 5 Properties, Methods
Mdl
обученный ClassificationKNN
классификатор, и некоторые его свойства появляется в Командном окне.
Получить доступ к свойствам Mdl
, используйте запись через точку.
Mdl.ClassNames
ans = 3x1 cell
{'setosa' }
{'versicolor'}
{'virginica' }
Mdl.Prior
ans = 1×3
0.3333 0.3333 0.3333
Mdl.Prior
содержит априорные вероятности класса, которые можно задать использование 'Prior'
аргумент пары "имя-значение" в fitcknn
. Порядок априорных вероятностей класса соответствует порядку классов в Mdl.ClassNames
. По умолчанию априорные вероятности являются соответствующими относительными частотами классов в данных.
Можно также сбросить априорные вероятности после обучения. Например, установите априорные вероятности на 0,5, 0.2, и 0.3, соответственно.
Mdl.Prior = [0.5 0.2 0.3];
Можно передать Mdl
к predict
пометить новые измерения или crossval
перекрестный подтверждать классификатор.
compact
функция уменьшает размер большинства моделей классификации путем удаления свойств обучающих данных и любых других свойств, которые не требуются, чтобы предсказывать метки новых наблюдений. Поскольку k - самые близкие соседние модели классификации требуют, чтобы все обучающие данные предсказали метки, вы не можете уменьшать размер ClassificationKNN
модель.
knnsearch
находит k - самые близкие соседи точек. rangesearch
находит все точки на фиксированном расстоянии. Можно использовать эти функции в классификации, как показано в Классифицируют Данные о Запросе. Если вы хотите выполнить классификацию, то использование ClassificationKNN
модели могут быть более удобными, потому что можно обучить классификатор за один шаг (использующий fitcknn
) и классифицируйте на другие шаги (использующий predict
). В качестве альтернативы можно обучить k - самая близкая соседняя модель классификации использование одной из опций перекрестной проверки в вызове fitcknn
. В этом случае, fitcknn
возвращает ClassificationPartitionedModel
перекрестный подтвержденный объект модели.
Указания и ограничения по применению:
predict
функционируйте генерация кода поддержек.
Когда вы обучаете k - самая близкая соседняя модель классификации при помощи fitcknn
, следующие ограничения применяются.
Класс помечает значение входного параметра (Y
) не может быть категориальный массив.
Генерация кода не поддерживает категориальные предикторы (logical
категориальный
'char'
Строка
, или cell
). Если вы снабжаете обучающими данными в таблице, предикторы должны быть числовыми (double
или single
). Кроме того, вы не можете использовать 'CategoricalPredictors'
аргумент пары "имя-значение".
Чтобы включать категориальные предикторы в модель, предварительно обработайте категориальные предикторы при помощи dummyvar
прежде, чем подбирать модель.
Значение 'ClassNames'
аргументом пары "имя-значение" не может быть категориальный массив.
Значение 'Distance'
аргументом пары "имя-значение" не может быть пользовательская функция расстояния.
Значение 'DistanceWeight'
аргументом пары "имя-значение" может быть пользовательская функция веса расстояния, но это не может быть анонимная функция.
Значение 'ScoreTransform'
аргументом пары "имя-значение" не может быть анонимная функция.
Для получения дополнительной информации смотрите Введение в Генерацию кода.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.