离群点检测正态分布python
时间: 2023-09-12 22:03:18 浏览: 98
在Python中,可以使用Scikit-learn库中的LocalOutlierFactor算法进行离群点检测。该算法基于局部密度来判断点是否为离群点,并且可以处理高维数据和非线性数据。
下面是一个使用LocalOutlierFactor算法进行离群点检测的示例代码:
```python
from sklearn.neighbors import LocalOutlierFactor
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.vstack([X, X_outliers])
# 使用LocalOutlierFactor算法进行离群点检测
clf = LocalOutlierFactor(n_neighbors=20)
y_pred = clf.fit_predict(X)
# 绘制结果
import matplotlib.pyplot as plt
plt.title("Local Outlier Factor (LOF)")
plt.scatter(X[:, 0], X[:, 1], color='k', s=3., label='Data points')
plt.scatter(X[y_pred == -1, 0], X[y_pred == -1, 1], color='r', s=30., label='Outliers')
plt.legend(loc='upper left')
plt.show()
```
在上面的代码中,我们首先创建了一些随机数据,其中包含一些离群点。然后使用LocalOutlierFactor算法进行离群点检测,最后绘制出结果。在结果中,离群点被标记为红色。
阅读全文