使用Python实现DBSCAN算法对Iris鸢尾花数据进行聚类的代码,并用tsne画3D图展示聚类结果
时间: 2023-05-10 19:55:34 浏览: 151
以下是使用Python实现DBSCAN算法对Iris鸢尾花数据进行聚类的代码,并用tsne画3D图展示聚类结果:
```python
import numpy as np
import pandas as pd
from sklearn.cluster import DBSCAN
from sklearn.manifold import TSNE
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 加载数据
iris = pd.read_csv('iris.csv')
X = iris.iloc[:, :-1].values
# DBSCAN聚类
dbscan = DBSCAN(eps=0.5, min_samples=5)
dbscan.fit(X)
# 可视化聚类结果
tsne = TSNE(n_components=3, random_state=0)
X_tsne = tsne.fit_transform(X)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
colors = ['r', 'g', 'b', 'y', 'c', 'm']
for i in set(dbscan.labels_):
if i == -1:
color = 'k'
else:
color = colors[i % len(colors)]
ax.scatter(X_tsne[dbscan.labels_ == i, 0], X_tsne[dbscan.labels_ == i, 1], X_tsne[dbscan.labels_ == i, 2], c=color)
plt.show()
```
希望这个回答能够帮到你!