resubPredict

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

Описание

пример

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 - ближайших соседей, заданная как 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- 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