用密度聚类和Kmeans聚类分别对鸢尾花数据进行聚类
时间: 2024-01-18 10:02:24 浏览: 87
好的,下面是使用密度聚类和Kmeans聚类对鸢尾花数据进行聚类的Python代码:
首先,我们需要导入必要的库和鸢尾花数据集:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import DBSCAN
from sklearn.cluster import KMeans
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data[:, :2]
y = iris.target
```
接下来,我们可以使用密度聚类来对数据进行聚类:
```python
# 使用密度聚类
dbscan = DBSCAN(eps=0.5, min_samples=5)
labels = dbscan.fit_predict(X)
# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.title("DBSCAN Clustering")
plt.show()
```
上述代码中,我们使用了`DBSCAN`函数来进行密度聚类。我们设置了`eps`为0.5,表示密度半径为0.5;`min_samples`为5,表示最小样本数为5。最后,我们将聚类结果可视化。
下面,我们可以使用Kmeans聚类来对数据进行聚类:
```python
# 使用Kmeans聚类
kmeans = KMeans(n_clusters=3)
labels = kmeans.fit_predict(X)
# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.title("KMeans Clustering")
plt.show()
```
上述代码中,我们使用了`KMeans`函数来进行Kmeans聚类。我们设置了`n_clusters`为3,表示要聚成3类。最后,我们将聚类结果可视化。
完整代码如下:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import DBSCAN
from sklearn.cluster import KMeans
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data[:, :2]
y = iris.target
# 使用密度聚类
dbscan = DBSCAN(eps=0.5, min_samples=5)
labels = dbscan.fit_predict(X)
# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.title("DBSCAN Clustering")
plt.show()
# 使用Kmeans聚类
kmeans = KMeans(n_clusters=3)
labels = kmeans.fit_predict(X)
# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.title("KMeans Clustering")
plt.show()
```
阅读全文