聚类算法 python
时间: 2023-06-22 21:43:01 浏览: 90
聚类算法Python代码
以下是 Python 中常用的几种聚类算法的示例代码:
### K-Means 聚类算法
```python
from sklearn.cluster import KMeans
import numpy as np
# 定义一个二维数据集
data = np.array([[1, 2], [3, 4], [1, 4], [2, 1], [3, 5], [5, 7]])
# 创建 KMeans 模型并拟合数据
kmeans = KMeans(n_clusters=2)
kmeans.fit(data)
# 打印聚类结果
print(kmeans.labels_)
```
在上面的示例代码中,我们首先定义了一个二维数据集 `data`,它包含了一些数据点。然后,我们使用 `KMeans` 创建了一个 K-Means 聚类模型,并设置聚类数为 2。接下来,我们使用 `fit` 方法拟合数据,并使用 `labels_` 属性获取每个数据点所属的聚类标签。
### 层次聚类算法
```python
from scipy.cluster.hierarchy import dendrogram, linkage
import matplotlib.pyplot as plt
# 定义一个二维数据集
data = np.array([[1, 2], [3, 4], [1, 4], [2, 1], [3, 5], [5, 7]])
# 计算距离矩阵
Z = linkage(data, 'ward')
# 绘制树状图
plt.figure(figsize=(10, 5))
dendrogram(Z)
plt.show()
```
在上面的示例代码中,我们首先定义了一个二维数据集 `data`,它包含了一些数据点。然后,我们使用 `linkage` 函数计算数据点之间的距离矩阵,并设置距离计算方法为 `ward`。接下来,我们使用 `dendrogram` 函数绘制树状图。
### DBSCAN 聚类算法
```python
from sklearn.cluster import DBSCAN
import numpy as np
# 定义一个二维数据集
data = np.array([[1, 2], [3, 4], [1, 4], [2, 1], [3, 5], [5, 7]])
# 创建 DBSCAN 模型并拟合数据
dbscan = DBSCAN(eps=1, min_samples=2)
dbscan.fit(data)
# 打印聚类结果
print(dbscan.labels_)
```
在上面的示例代码中,我们首先定义了一个二维数据集 `data`,它包含了一些数据点。然后,我们使用 `DBSCAN` 创建了一个 DBSCAN 聚类模型,并设置半径大小为 1,最小样本数为 2。接下来,我们使用 `fit` 方法拟合数据,并使用 `labels_` 属性获取每个数据点所属的聚类标签。
阅读全文