MATLAB:建立信心区域

MATLAB: build confidence region

我正在尝试在 MATLAB 中以逐块方式执行图像异常检测。 对于图像中的每个补丁,我提取了一个 6x1 特征向量 g,其中每个分量都是一个指标。

我必须使用置信区域 cr,由下面的代码片段定义(我不能 post 图像),建立在法线补丁的所有特征向量上并使用它用于测试新补丁。

<a href="https://www.codecogs.com/eqnedit.php?latex=\dpi{100}&space;\mathcal{R}_{\gamma}=\lbrace\phi\in\mathbb{R}^6:&space;\sqrt{(\phi&space;-&space;\overline{\bf{g}})'\Sigma^{-1}(\phi-\overline{\bf{g}})}\leq\gamma\rbrace&space;\\&space;\text{where&space;$\overline{\bf{g}},$\Sigma$&space;are&space;the&space;average&space;and&space;the&space;sample&space;covariance&space;of&space;g}" target="_blank"><img src="https://latex.codecogs.com/gif.latex?\dpi{100}&space;\mathcal{R}_{\gamma}=\lbrace\phi\in\mathbb{R}^6:&space;\sqrt{(\phi&space;-&space;\overline{\bf{g}})'\Sigma^{-1}(\phi-\overline{\bf{g}})}\leq\gamma\rbrace&space;\\&space;\text{where&space;$\overline{\bf{g}},$\Sigma$&space;are&space;the&space;average&space;and&space;the&space;sample&space;covariance&space;of&space;g}" title="\mathcal{R}_{\gamma}=\lbrace\phi\in\mathbb{R}^6: \sqrt{(\phi - \overline{\bf{g}})'\Sigma^{-1}(\phi-\overline{\bf{g}})}\leq\gamma\rbrace \\ \text{where $\overline{\bf{g}},$\Sigma$ are the average and the sample covariance of g}" /></a>

非正式地,我想检查测试特征向量是否落在置信区域内,因此将补丁标记为 normal,否则 anomalous.

我很难理解如何使用 MATLAB 在 R6 中建立置信域。我试过使用bootci,但是这样做cr变成了2x6x6矩阵,我不明白三维的含义。任何帮助或建议表示赞赏! 谢谢。

如果您只想对 6 维向量 φ 进行分类,只需在代码段中应用该公式即可。假设 sigmaInv 是样本协方差的倒数并且 φ 和 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表示正常,反之表示异常。 (取平方根假设样本协方差是正定的)。 如果 phig_bar 是行向量,则公式应在第二个括号后进行转置:

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

希望对您有所帮助