isolationForest初见

isolationForest主要用于异常检测
sklearn有实现,from sklearn.ensemble import IsolationForest
使用方法和多数算法一样,都是sklearn风格
sklearn文档中对该算法进行了介绍,大意就是:
1.子树是二叉树,只处理连续变量
2.随机找变量,随机找切分点
3.路径长度来度量是否是outliers(原理是异常点路径长度短,证明不知)(路径长度和depth不就是一回事吗?)
4.observation在整个森林上求平均路径长度来度量其异常点可能

参数方面:
1.树数 默认100
2.sample数,默认auto,max_samples = min(256,n_samples),论文说超过256效果欠佳
3.max_features 文档明确说了每棵树的时候抽样,默认不抽样
4.bootstrap sample抽样默认关闭boostrap

实操:
fit(X)拟合
decision_function输出各个observation的score,有正有负,越小异常可能越大,这里为什么有负?不是平均路径长度吗?需要研究下
还试了score_samples,文档中说是opposite of the abnomaly score,输出出来都是负的,rank和decision_function输出一致

留言

熱門文章