python中knn函数 python ncnn( 五 )


使用ball tree时,先自上而下找到包含target的叶子结点(c, r),从此结点中找到离它最近的观测点 。这个距离就是 最近邻的距离的上界。检查它的 兄弟结点 中是否包含比这个上界更小的观测点 。方法是: 如果目标点距离兄弟结点的圆心的距离d兄弟节点所在的圆半径R + 前面的上界r,则这个兄弟结点不可能包含所要的观测点。否则,检查这个兄弟结点是否包含符合条件的观测点 。
用一个随机超平面来切割数据空间, 直到每个子空间里面只有一个数据点为止 。切割次数的多少可用来区分异常 。
iForest 由t个iTree孤立树组成,每个iTree是一个二叉树,其实现步骤如下:
可以看到d最有可能是异常 , 因为其最早就被孤立(isolated)了 。
获得t个iTree之后,iForest 训练就结束,然后我们可以用生成的iForest来评估测试数据了 。对于一个训练数据x,我们令其遍历每一棵iTree,然后计算x最终落在每个树第几层(x在树的高度),得到x在每棵树的高度平均值 。获得每个测试数据的average path length后,我们可以设置一个阈值,低于此阈值的测试数据即为异常 。
IForest具有线性时间复杂度 。
IForest不适用于特别高维的数据 。
最小协方差行列式(Minimum Covariance Determinant)
论文《Minimum covariance determinant and extensions》中有更详细描述 。
论文《A Fast Algorithm for the Minimum Covariance Determinant Estimator》有更详细描述 。
【python中knn函数 python ncnn】关于python中knn函数和python ncnn的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读