生成基于isolation forest的异常检测代码
时间: 2023-10-14 22:06:05 浏览: 147
以下是基于Python的Isolation Forest异常检测代码示例:
```python
from sklearn.ensemble import IsolationForest
import numpy as np
# 生成示例数据
np.random.seed(42)
X = 0.3 * np.random.randn(100, 2)
X_outliers = np.random.uniform(low=-4, high=4, size=(20, 2))
X = np.r_[X + 2, X - 2, X_outliers]
# 创建Isolation Forest模型
clf = IsolationForest(n_estimators=100, max_samples='auto', contamination='auto', random_state=42)
# 训练模型并预测异常点
clf.fit(X)
y_pred = clf.predict(X)
# 输出异常点结果
print("异常点数量:", np.sum(y_pred == -1))
print("异常点索引:", np.where(y_pred == -1))
```
上述代码中,我们首先生成了一个二维数据集,并加入了20个随机生成的异常点。然后,我们创建了一个Isolation Forest模型,并使用`fit()`方法对数据进行训练,然后使用`predict()`方法对数据进行预测,得到了每个数据点的预测结果。最后,我们输出了异常点的数量和索引。
需要注意的是,Isolation Forest中的参数`n_estimators`表示树的数量,`max_samples`表示每个树的采样数量,`contamination`表示异常点比例,`random_state`表示随机种子。根据实际情况,可以调整这些参数来获得更好的异常点检测效果。
阅读全文