resubPredict

Предскажите метки перезамены k - самый близкий соседний классификатор

Синтаксис

label = resubPredict(mdl)
[label,score] = resubPredict(mdl)
[label,score,cost] = resubPredict(mdl)

Описание

пример

label = resubPredict(mdl) возвращает метки, что mdl предсказывает для данных тренировки mdl.X. Вывод label содержит прогнозы mdl на данных, используемых fitcknn, чтобы создать mdl.

[label,score] = resubPredict(mdl) также возвращает следующие вероятности класса для прогнозов.

[label,score,cost] = resubPredict(mdl) также возвращает затраты misclassification.

Примеры

свернуть все

Исследуйте качество классификатора его прогнозами перезамены.

Загрузите ирисовый набор данных Фишера.

load fisheriris
X = meas;
Y = species;

Создайте классификатор для пяти самых близких соседей.

mdl = fitcknn(X,Y,'NumNeighbors',5);

Сгенерируйте прогнозы перезамены.

label = resubPredict(mdl);

Вычислите количество дифференцирований между прогнозами label и исходные данные Y.

mydiff = not(strcmp(Y,label)); % mydiff(i) = 1 means they differ
sum(mydiff) % Number of differences
ans = 5

Значение 1 в mydiff указывает, что наблюдаемая метка отличается от соответствующей предсказанной метки. Этот пример имеет пять misclassifications.

Входные параметры

свернуть все

k-nearest граничат с моделью классификатора, заданной как объект ClassificationKNN.

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

свернуть все

Предсказанный класс маркирует для наблюдений (строки) в данных тренировки X, возвращенный как категориальный массив, символьный массив, логический вектор, числовой вектор или массив ячеек из символьных векторов. label имеет длину, равную количеству строк в X. Метка является классом с минимальной ожидаемой стоимостью. Смотрите Предсказанную Метку Класса.

Предсказанные очки класса или апостериорные вероятности, возвращенные как числовая матрица размера n-by-K. n является количеством наблюдений (строки) в данных тренировки X, и K является количеством классов (в mdl.ClassNames). score(i,j) является апостериорной вероятностью, что наблюдение i в X имеет класс j в mdl.ClassNames. Смотрите Апостериорную вероятность.

Ожидаемые затраты классификации, возвращенные как числовая матрица размера n-by-K. n является количеством наблюдений (строки) в данных тренировки X, и K является количеством классов (в mdl.ClassNames). cost(i,j) является стоимостью классификации строки i X как класс j в mdl.ClassNames. Смотрите Ожидаемую Стоимость.

Советы

  • Если вы стандартизируете данные о предикторе, то есть, mdl.Mu и mdl.Sigma не пусты ([]), то resubPredict стандартизирует данные о предикторе прежде, чем предсказать метки.

Алгоритмы

свернуть все

Предсказанная метка класса

resubPredict классифицирует путем минимизации ожидаемой стоимости классификации:

y^=аргументminy=1,...,Kj=1KP^(j|x)C(y|j),

где

  • y^ предсказанная классификация.

  • K является количеством классов.

  • P^(j|x) апостериорная вероятность класса j для наблюдения x.

  • C(y|j) стоимость классификации наблюдения как 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)

p(j|xновый)=inbdW(i)1Y(X(i))=jinbdW(i).

Здесь, 1Y(X(i))=j 1 когда   mdl.Y(i) = j и 0 в противном случае.

Истинная стоимость Misclassification

Два затрат сопоставлены с классификацией 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 стоится на наблюдение. Третий вывод resubPredict является ожидаемой стоимостью misclassification на наблюдение.

Предположим, что у вас есть наблюдения Nobs, что вы классифицировали с обученным классификатором mdl, и у вас есть классы K. Команда

[label,score,cost] = resubPredict(mdl)

возвращает матричный cost размера Nobs-by-K, среди других выходных параметров. Каждая строка матрицы cost содержит ожидаемую (среднюю) стоимость классификации наблюдения в каждый из классов K. cost(n,j)

i=1KP^(i|X(n))C(j|i),

где

  • K является количеством классов.

  • P^(i|X(n)) апостериорная вероятность класса i для наблюдения X (n).

  • C(j|i) истинная misclassification стоимость классификации наблюдения как j, когда его истинным классом является i.

Смотрите также

| | | | |

Представленный в R2012a