莺尾花数据集python
时间: 2025-04-24 12:09:05 浏览: 18
### 使用鸢尾花数据集进行聚类分析
对于鸢尾花数据集(Iris dataset),这是一个经典的多变量数据分析案例。该数据集包含了150个样本,分为三个类别,每个类别有50个观测值。每条记录具有四个属性:萼片长度、萼片宽度、花瓣长度和花瓣宽度。
为了展示如何使用Python处理此数据集并应用DBSCAN算法进行聚类,下面提供了一段完整的代码示例:
```python
import matplotlib.pyplot as plt
import numpy as np
from sklearn.cluster import DBSCAN
from sklearn import datasets
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data[:, :4]
# 应用DBSCAN算法
dbscan = DBSCAN(eps=0.5, min_samples=5).fit(X)
# 获取标签
labels = dbscan.labels_
# 绘制散点图显示不同簇的结果
unique_labels = set(labels)
colors = [plt.cm.Spectral(each) for each in np.linspace(0, 1, len(unique_labels))]
for k, col in zip(unique_labels, colors):
if k == -1:
# 噪声点标记为黑色
col = [0, 0, 0, 1]
class_member_mask = labels == k
xy = X[class_member_mask]
plt.plot(xy[:, 0], xy[:, 1], 'o', markerfacecolor=tuple(col), markeredgecolor='k', markersize=6)
plt.title('Estimated number of clusters: %d' % len(set(labels))-(1 if -1 in labels else 0))
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.show()
```
上述代码加载了`sklearn.datasets`模块中的鸢尾花数据集,并通过设置参数`eps`(半径大小)和`min_samples`(最小样本数)来定义邻域内的核心对象标准[^1]。接着利用这些参数训练了一个DBSCAN模型实例用于发现潜在的数据结构。最后绘制出各个簇以及被识别出来的噪声点的位置分布情况。
#### 数据预览与可视化
在此之前还可以先查看一下原始数据的一些基本信息,比如前几行的内容或者简单的统计描述:
```python
print("Data shape:", X.shape)
print("\nFirst few rows:")
print(X[:5])
```
这有助于理解所使用的具体特征及其范围,在此基础上再决定合适的距离度量方式和其他超参数的选择策略。
阅读全文
相关推荐



















