Предскажите метки с помощью k - самая близкая соседняя модель классификации
возвращает вектор предсказанных меток класса для данных о предикторе в таблице или матричном label
= predict(mdl
,X
)X
, на основе обученного k - самая близкая соседняя модель mdl
классификации. Смотрите предсказанную метку класса.
[
также возвращается:label
,score
,cost
]
= predict(mdl
,X
)
Матрица A баллов классификации (score
) указание на вероятность, что метка прибывает из конкретного класса. Для k - самый близкий сосед, баллы являются апостериорными вероятностями. Смотрите Апостериорную вероятность.
Матрица A ожидаемой стоимости классификации (cost
). Для каждого наблюдения в X
, предсказанная метка класса соответствует минимальным ожидаемым затратам классификации среди всех классов. Смотрите Ожидаемую Стоимость.
Создайте классификатор k - ближайших соседей для ирисовых данных Фишера, где k = 5. Оцените некоторые прогнозы модели на новых данных.
Загрузите ирисовый набор данных Фишера.
load fisheriris
X = meas;
Y = species;
Создайте классификатор для пяти самых близких соседей. Стандартизируйте некатегориальные данные о предикторе.
mdl = fitcknn(X,Y,'NumNeighbors',5,'Standardize',1);
Предскажите классификации для цветов с минимумом, средним значением и максимальными характеристиками.
Xnew = [min(X);mean(X);max(X)]; [label,score,cost] = predict(mdl,Xnew)
label = 3x1 cell array
{'versicolor'}
{'versicolor'}
{'virginica' }
score = 3×3
0.4000 0.6000 0
0 1.0000 0
0 0 1.0000
cost = 3×3
0.6000 0.4000 1.0000
1.0000 0 1.0000
1.0000 1.0000 0
Вторые и третьи строки счета и матриц стоимости имеют двоичные значения, что означает, что у всех пяти самых близких соседей средних и максимальных цветочных измерений есть идентичные классификации.
mdl
— k - самая близкая соседняя модель классификатораClassificationKNN
объектмодель классификатора k - ближайших соседей, заданная как ClassificationKNN
объект.
X
— Данные о предикторе, которые будут классифицированыДанные о предикторе, которые будут классифицированы, заданные как числовая матрица или таблица.
Каждая строка X
соответствует одному наблюдению, и каждый столбец соответствует одной переменной.
Для числовой матрицы:
Переменные, которые составляют столбцы X
должен иметь тот же порядок, как переменные предикторы раньше обучали mdl
.
Если вы обучаете mdl
с помощью таблицы (например, Tbl
), затем X
может быть числовая матрица если Tbl
содержит все числовые переменные предикторы. k - самая близкая соседняя классификация требует гомогенных предикторов. Поэтому обрабатывать все числовые предикторы в Tbl
как категориальный во время обучения, набор 'CategoricalPredictors','all'
когда вы обучаете использование fitcknn
. Если Tbl
содержит неоднородные предикторы (например, типы числовых и категориальных данных) и X
числовая матрица, затем predict
выдает ошибку.
Для таблицы:
predict
не поддерживает многостолбцовые переменные и массивы ячеек кроме массивов ячеек из символьных векторов.
Если вы обучаете mdl
с помощью таблицы (например, Tbl
), затем все переменные предикторы в X
должен иметь те же имена переменных и типы данных как используемые, чтобы обучить mdl
(сохраненный в mdl.PredictorNames
). Однако порядок следования столбцов X
не должен соответствовать порядку следования столбцов Tbl
. Оба Tbl
и X
может содержать дополнительные переменные (переменные отклика, веса наблюдения, и так далее), но predict
игнорирует их.
Если вы обучаете mdl
с помощью числовой матрицы затем предиктор называет в mdl.PredictorNames
и соответствующий переменный предиктор называет в X
должно быть то же самое. Чтобы задать имена предиктора во время обучения, смотрите PredictorNames
аргумент пары "имя-значение" fitcknn
. Все переменные предикторы в X
должны быть числовые векторы. X
может содержать дополнительные переменные (переменные отклика, веса наблюдения, и так далее), но predict
игнорирует их.
Если вы устанавливаете 'Standardize',true
в fitcknn
обучать mdl
, затем программное обеспечение стандартизирует столбцы X
использование соответствующих средних значений в mdl.Mu
и стандартные отклонения в mdl.Sigma
.
Типы данных: double |
single
| table
label
— Предсказанные метки классаПредсказанный класс помечает для наблюдений (строки) в X
, возвращенный как категориальный массив, символьный массив, логический вектор, вектор числовых значений или массив ячеек из символьных векторов. label
имеет длину, равную количеству строк в X
. Метка является классом с минимальной ожидаемой стоимостью. Смотрите Предсказанную Метку Класса.
score
— Предсказанные баллы класса или апостериорные вероятностиПредсказанные баллы класса или апостериорные вероятности, возвращенные как числовая матрица размера n-by-K. n является количеством наблюдений (строки) в X
, и K является количеством классов (в mdl.ClassNames
). score(i,j)
апостериорная вероятность то наблюдение i
в X
имеет класс j
в mdl.ClassNames
. Смотрите апостериорную вероятность.
Типы данных: single
| double
cost
— Ожидаемые затраты классификацииОжидаемые затраты классификации, возвращенные как числовая матрица размера n-by-K. n является количеством наблюдений (строки) в X
, и K является количеством классов (в mdl.ClassNames
). cost(i,j)
стоимость классификации строки i
из X
как класс j
в mdl.ClassNames
. Смотрите ожидаемую стоимость.
Типы данных: single
| double
predict
классифицирует путем минимизации ожидаемой стоимости классификации:
где
предсказанная классификация.
K является количеством классов.
апостериорная вероятность класса j для наблюдения x.
стоимость классификации наблюдения как y, когда его истинным классом является j.
Считайте вектор (точка единого запроса) xnew
и модель mdl
.
k является количеством самых близких соседей, используемых в прогнозе, mdl.NumNeighbors
.
nbd(mdl,xnew)
задает k самые близкие соседи xnew
в mdl.X
.
Y(nbd)
задает классификации точек в nbd(mdl,xnew)
, а именно, mdl.Y(nbd)
.
W(nbd)
задает веса точек в nbd(mdl,xnew)
.
prior
задает уголовное прошлое классов в mdl.Y
.
Если модель содержит вектор априорных вероятностей, то веса наблюдения W
нормированы классом, чтобы суммировать к уголовному прошлому. Этот процесс может включить вычисление для точки xnew
, потому что веса могут зависеть от расстояния от xnew
к точкам в mdl.X
.
Апостериорная вероятность p (j |xnew
)
Здесь, 1
когда mdl.Y(i) = j
, и 0
в противном случае.
Два затрат сопоставлены с классификацией KNN: истинная стоимость misclassification в классе и ожидаемом misclassification стоится на наблюдение.
Можно установить истинную стоимость misclassification в классе при помощи 'Cost'
аргумент пары "имя-значение", когда вы запускаете fitcknn
. Значение Cost(i,j)
стоимость классификации наблюдения в класс j
если его истинным классом является i
. По умолчанию, Cost(i,j) = 1
если i ~= j
, и Cost(i,j) = 0
если i = j
. Другими словами, стоимостью является 0
для правильной классификации и 1
для неправильной классификации.
Два затрат сопоставлены с классификацией KNN: истинная стоимость misclassification в классе и ожидаемом misclassification стоится на наблюдение. Третий выход predict
ожидаемая стоимость misclassification на наблюдение.
Предположим, что у вас есть Nobs
наблюдения, что вы хотите классифицировать с обученным классификатором mdl
, и у вас есть K
классы. Вы помещаете наблюдения в матричный Xnew
с одним наблюдением на строку. Команда
[label,score,cost] = predict(mdl,Xnew)
возвращает матричный cost
из размера Nobs
- K
, среди других выходных параметров. Каждая строка cost
матрица содержит ожидаемую (среднюю) стоимость классификации наблюдения в каждый K
классы. cost(n,j)
где
K является количеством классов.
апостериорная вероятность класса i для наблюдения Xnew (n).
истинная misclassification стоимость классификации наблюдения как j, когда его истинным классом является i.
Эта функция полностью поддерживает "высокие" массивы. Для получения дополнительной информации смотрите Длинные массивы (MATLAB).
Указания и ограничения по применению:
Используйте saveLearnerForCoder
, loadLearnerForCoder
, и codegen
сгенерировать код для predict
функция. Сохраните обученную модель при помощи saveLearnerForCoder
. Задайте функцию точки входа, которая загружает сохраненную модель при помощи loadLearnerForCoder
и вызывает predict
функция. Затем используйте codegen
сгенерировать код для функции точки входа.
Эта таблица содержит примечания об аргументах predict
. Аргументы, не включенные в эту таблицу, полностью поддержаны.
Аргумент | Примечания и ограничения |
---|---|
mdl |
|
X |
|
Для получения дополнительной информации смотрите Введение в Генерацию кода.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.