MATLAB: построить доверительный регион - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь выполнить обнаружение аномалий изображений патч-ап в MATLAB. Для каждого патча в изображении я извлекаю 6x1 вектор объектов g, где каждый компонент является индикатором.

Мне нужно использовать доверительную область cr, определенную фрагментом ниже (я не смог опубликовать изображение), построенную на всех векторах функций обычных исправлений, и использовать ее для тестирования новых исправлений.

Неофициально, я хочу проверить, попадает ли вектор тестового объекта в доверительную область, и пометить патч как normal, в противном случае anomalous.

Я изо всех сил пытаюсь понять, как построить доверительную область в R6, используя MATLAB. Я пытался использовать bootci , но cr становится матрицей 2x6x6, и я не понимаю значения третьего измерения. Любая помощь или предложение приветствуется! Спасибо.

1 Ответ

0 голосов
/ 04 января 2019

Если все, что вам нужно - это классифицировать 6-D вектор & phi ;, просто примените формулу в своем фрагменте. Предполагая, что sigmaInv является инверсией ковариации образца, и что & phi; и g_bar являются векторами столбцов, т.е. size(phi) = size(g_bar) = (6,1) затем

s = (phi-g_bar)'*sigmaInv*(phi-g_bar) % note the ' after the first () = transpose

является скаляром, а sqrt(s) <= gamma означает нормальное, противоположное означает аномальное. (Взятие квадратного корня предполагает, что выборочная ковариация является положительно определенной). Если phi и g_bar - векторы строк, то после второй скобки формула должна иметь транспонирование:

s = (phi-g_bar)*sigmaInv*(phi-g_bar)' %  apostrophe now after second ()

Надеюсь, это поможет

...