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
表示正常,反之表示异常。 (取平方根假设样本协方差是正定的)。
如果 phi
和 g_bar
是行向量,则公式应在第二个括号后进行转置:
s = (phi-g_bar)*sigmaInv*(phi-g_bar)' % apostrophe now after second ()
希望对您有所帮助
我正在尝试在 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
表示正常,反之表示异常。 (取平方根假设样本协方差是正定的)。
如果 phi
和 g_bar
是行向量,则公式应在第二个括号后进行转置:
s = (phi-g_bar)*sigmaInv*(phi-g_bar)' % apostrophe now after second ()
希望对您有所帮助