python kmeans 鸢尾花 实例
时间: 2023-09-08 13:14:45 浏览: 168
下面是使用Python实现K-Means算法对鸢尾花数据集进行聚类的示例代码:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import load_iris
# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target
# 使用K-Means算法进行聚类
kmeans = KMeans(n_clusters=3, random_state=0).fit(X)
labels = kmeans.labels_
# 可视化聚类结果
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.show()
```
运行该代码,即可得到鸢尾花数据集的聚类结果。
注:本示例中仅使用了鸢尾花数据集中的两个特征(Sepal length和Sepal width),以方便可视化。在实际应用中,可以根据需要选择更多的特征。
相关问题
kmeans聚类分析实例研究python
### 关于Python中KMeans聚类分析的实例研究与教程
#### KMeans聚类算法简介
KMeans是一种常用的无监督机器学习算法,用于将数据划分为多个簇。该算法通过计算样本到各个聚类中心的距离来分配样本所属的簇,并不断调整这些聚类中心的位置直到收敛[^1]。
#### Python实现KMeans的具体过程
为了更好地理解如何利用Python进行KMeans聚类,在实际操作前需先导入必要的库文件,如`numpy`, `pandas`以及来自scikit-learn包中的`KMeans`模块:
```python
import numpy as np
import pandas as pd
from sklearn.cluster import KMeans
```
接着定义函数加载或创建待处理的数据集;对于鸢尾花数据集而言,则可以直接调用sklearn自带的方法获取:
```python
from sklearn.datasets import load_iris
data = load_iris().data # 获取特征矩阵
target = load_iris().target # 获取标签向量(仅作验证用途)
```
设置参数并初始化模型对象后即可执行fit()方法完成训练工作:
```python
model = KMeans(n_clusters=3, random_state=0).fit(data)
labels = model.labels_
centers = model.cluster_centers_
```
最后可以绘制散点图展示不同类别之间的分布情况以便直观观察效果:
```python
import matplotlib.pyplot as plt
plt.scatter(data[:, 0], data[:, 1], c=labels, cmap='viridis')
plt.scatter(centers[:, 0], centers[:, 1], s=200, alpha=0.75, marker="*", color="red", label="Centers")
plt.legend()
plt.show()
```
上述代码片段展示了完整的流程,从准备环境到最后可视化结果均有所涉及[^2]。
#### NBA球员历史数据分析案例
另一个有趣的例子是对NBA球员的历史统计数据应用KMeans聚类技术来进行探索性研究。此项目不仅能够帮助我们发现隐藏在玩家表现背后的趋势模式,而且还可以揭示某些特定类型的运动员群体特性。具体做法同样是按照前面提到的标准步骤展开,只不过这里使用的数据源会有所不同而已[^3]。
鸢尾花数据集kmeans算法的python实现
### Python 实现 KMeans 算法对鸢尾花数据集进行聚类
对于使用 `Python` 和机器学习库来实现 KMeans 聚类分析,可以采用如下方式处理鸢尾花 (`Iris`) 数据集:
#### 导入必要的包
为了执行此操作,需要导入一些基本的软件包以及用于评估模型性能的相关工具。
```python
from sklearn.cluster import KMeans
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
import pandas as pd
```
#### 加载数据集
利用 `scikit-learn` 提供的功能快速加载经典的数据集——鸢尾花数据集。
```python
# Load dataset
iris = load_iris()
X = iris.data # we only take the first two features.
y = iris.target
df = pd.DataFrame(X, columns=iris.feature_names)
print(df.head())
```
#### 创建并训练模型
定义一个 KMeans 的实例对象,并通过 `.fit()` 方法让该模型基于输入特征向量 X 学习样本之间的模式[^1]。
```python
kmeans = KMeans(n_clusters=3, random_state=0).fit(X)
labels = kmeans.labels_
centroids = kmeans.cluster_centers_
print("Cluster Centers:\n", centroids)
```
#### 可视化结果
绘制散点图展示不同簇中心及其对应的分类情况,以便更直观理解聚类效果。
```python
plt.figure(figsize=(8,6))
colors=['red', 'blue', 'green']
for i in range(len(colors)):
xs = X[labels==i, 0]
ys = X[labels==i, 1]
plt.scatter(xs, ys, c=colors[i])
plt.scatter(centroids[:,0], centroids[:,1], marker='*', s=300, c='yellow')
plt.title('K Means Clustering on Iris Dataset')
plt.show()
```
上述代码展示了如何应用 Scikit-Learn 库中的 KMeans 类完成对鸢尾花数据集的基本聚类任务。值得注意的是,在实际应用场景下可能还需要考虑更多因素如参数调整、预处理步骤等以获得更好的聚类质量[^2]。
阅读全文
相关推荐















