离群点检测python代码
时间: 2023-06-14 16:07:17 浏览: 172
离群点检测(Outlier Detection)是一种在数据集中寻找异常值的技术。在Python中,我们可以使用很多库来进行离群点检测,如scikit-learn、PyOD等。下面是一个使用PyOD库的示例代码,其中采用KNN算法进行离群点检测:
```python
from pyod.models.knn import KNN # 引入KNN模型
from pyod.utils.data import generate_data, get_outliers_inliers # 引入数据生成函数和标签函数
import matplotlib.pyplot as plt # 引入可视化库
# 生成数据集
X_train, y_train, X_test, y_test = generate_data(n_train=200, n_test=100, n_features=2, contamination=0.1)
# 训练模型
clf_name = 'KNN'
clf = KNN()
clf.fit(X_train)
# 预测结果
y_train_pred = clf.labels_ # 训练集上的预测标签(0:正常值,1:异常值)
y_train_scores = clf.decision_scores_ # 训练集上的异常分值
# 可视化
plt.scatter(X_train[:, 0], X_train[:, 1], c=y_train_pred)
plt.title(clf_name)
plt.show()
```
在上面的代码中,我们首先使用generate_data函数生成一个二维数据集,其中包含了10%的异常值。然后我们使用KNN模型对数据集进行训练,并在训练集上预测标签和异常分值。最后,我们使用matplotlib库将数据集可视化,其中异常值用红色表示。
阅读全文