用K-MEANS进行离群点检测并画出离群点图的python代码
时间: 2023-08-03 15:07:36 浏览: 118
以下是使用K-MEANS进行离群点检测并画出离群点图的Python代码示例:
```python
from sklearn.cluster import KMeans
import numpy as np
import matplotlib.pyplot as plt
# 生成数据
X = np.random.randn(100, 2)
# 拟合K-MEANS模型
kmeans = KMeans(n_clusters=2).fit(X)
# 计算每个数据点到其所属簇中心的距离
distances = kmeans.transform(X)
# 计算每个数据点到最近的簇中心的距离
min_distances = np.min(distances, axis=1)
# 根据距离阈值判断是否为离群点
threshold = np.percentile(min_distances, 95)
outliers = X[min_distances >= threshold]
# 绘制离群点图
plt.scatter(X[:, 0], X[:, 1], s=50, c='blue')
plt.scatter(outliers[:, 0], outliers[:, 1], s=100, c='red', marker='x')
plt.show()
```
在这个示例中,我们生成了一个随机二维数据集X,并使用K-MEANS算法将其分为两个簇。然后,我们计算每个数据点到其所属簇中心的距离,并计算每个数据点到最近的簇中心的距离。最后,我们使用距离阈值来判断哪些数据点是离群点,并绘制出离群点图。在这个示例中,我们使用蓝色圆圈表示数据点,使用红色叉号表示离群点。
阅读全文