Python中Isolation Forest算法代码及示意
时间: 2024-12-10 22:55:55 浏览: 10
Isolation Forest是一种基于随机分割的无监督异常检测算法。它假设正常数据点更容易被分割成较小的区域,而异常数据点则需要更多的分割才能隔离。以下是Python中使用`sklearn`库实现Isolation Forest的一个简单示例:
```python
# 导入所需的库
from sklearn.ensemble import IsolationForest
import numpy as np
# 假设我们有训练数据X,这里用numpy生成一些随机数据作为例子
n_samples, n_features = 1000, 20
X = np.random.randn(n_samples, n_features)
# 创建Isolation Forest模型
model = IsolationForest(contamination='auto') # 'auto'表示自适应地估计异常值比例
# 拟合模型
model.fit(X)
# 预测数据集中的异常分数(越低越异常)
scores = model.decision_function(X)
# 根据得分对数据进行分类,通常得分小于某个阈值被认为是异常
threshold = np.percentile(scores, 95) # 这里选择95分位数作为阈值
anomalies = scores < threshold
# 输出异常索引
print("Anomaly indices:", anomalies.nonzero()[0])
```
在这个示例中,`fit()`方法用于训练模型,`decision_function()`返回每个样本的孤立路径长度,值越小代表异常程度越高。
阅读全文