分享
Distance based outlier detection in large dataset?
如题。 问题是有一个存在硬盘上的数据库,数据库大小约是内存的20倍,其中恰好有一个 outlier, 怎么用furthest nearest neighbor的方法(每个点都有许多neighbors, 把离某点O最近的neighbor与O的距离记作r_O, 这里要求的是找出使r_O最大的O。)找出这个outlier? 要求是数据库的scan次数不超过三次。 (从数据库读入的次数不超过三次, 但是从数据库读入内存后对数据的的读取次数并没有限制)我查了不少文献,也查到了不超过3次scan找出outlier的方法,但是这些方法都需要给定 参数,比方说给定(r,k) (表示某个点O 周围r半径内的object不超过k个则这个点判断 为outlier), 而找furthest nearest neighbor 的话要用这种方式描述的话这个参数 就成了(r1,0), 其中r1 是outlier 的furthest nearest neighbor 与它的距离,但 是这个参数不好确定。 给太小了检测出的outlier就太多了, 给大了又检测不出 outlier。 请问该怎么解决这个问题?
回复 ( 1 )
EDIT:题目改了。答案不再适用。
_____________________________
简单想了下。不知道你的 outlier 的标准是什么。如果已知只有一个 outlier,且和其它数据都离得很远的话,这样如何:
完成。两次操作都是 memory-efficient。