kmeans聚类算法python案例
时间: 2023-04-26 19:02:07 浏览: 183
kmeans聚类算法是一种常用的无监督学习算法,可以将数据集分成k个不同的簇。Python中有很多库可以实现kmeans聚类算法,比如scikit-learn和numpy等。下面是一个使用scikit-learn库实现kmeans聚类算法的Python案例:
```python
from sklearn.cluster import KMeans
import numpy as np
# 生成随机数据
X = np.random.rand(100, 2)
# 定义kmeans模型
kmeans = KMeans(n_clusters=3)
# 训练模型
kmeans.fit(X)
# 预测结果
y_pred = kmeans.predict(X)
# 打印结果
print(y_pred)
```
在这个例子中,我们生成了一个包含100个样本的二维数据集,然后使用KMeans模型将其分成3个簇。最后,我们打印出每个样本所属的簇的标签。
相关问题
kmeans聚类算法python实现案例
### 使用 Python 和 Sklearn 庌现 KMeans 聚类
对于二维数据集,可以利用 `sklearn` 中的 `KMeans` 进行聚类分析,并通过 `matplotlib` 可视化结果。下面展示了一个完整的例子来说明如何实现这一过程。
#### 导入必要的库
```python
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
```
创建模拟的数据集用于测试:
```python
# 创建具有特定方差和数量的样本点作为训练数据
X, _ = make_blobs(n_samples=300, centers=4, cluster_std=0.60, random_state=0)
plt.scatter(X[:, 0], X[:, 1])
plt.show()
```
初始化并拟合模型:
```python
kmeans = KMeans(n_clusters=4) # 设定要找寻的簇数目为4
kmeans.fit(X)
y_kmeans = kmeans.predict(X)
centers = kmeans.cluster_centers_
```
绘制分类后的散点图以及质心位置:
```python
plt.figure(figsize=(8, 6))
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=50, cmap='viridis')
plt.scatter(centers[:, 0], centers[:, 1], c='red', s=200, alpha=0.75);
plt.title('Cluster Centers and Data Points')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.grid(True)
plt.show()
```
评估聚类质量可选用轮廓系数[^3]:
```python
from sklearn.metrics import silhouette_score
silhouette_avg = silhouette_score(X, y_kmeans)
print(f'Silhouette Score: {silhouette_avg}')
```
kmeans聚类算法python项目
### KMeans聚类算法 Python 实现示例
为了展示如何利用 `scikit-learn` 庌库中的KMeans模块来执行聚类分析,下面提供了一个简单的实例。此案例旨在帮助理解基本工作流程。
#### 安装依赖包
确保环境中已安装必要的软件包。如果尚未完成安装,则可以运行如下命令:
```bash
pip install scikit-learn matplotlib numpy pandas
```
#### 导入所需库并准备数据集
加载所需的Python库,并创建或导入用于测试的数据集。
```python
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import pandas as pd
# 创建随机样本点作为演示用途
X = np.random.rand(100, 2)
df = pd.DataFrame(X, columns=['Feature_1', 'Feature_2'])
```
#### 执行KMeans聚类操作
初始化模型对象,并调用fit方法训练模型;之后预测类别标签。
```python
kmeans = KMeans(n_clusters=3) # 设置簇的数量为3
kmeans.fit(df)
predicted_labels = kmeans.predict(df)
centers = kmeans.cluster_centers_
```
#### 可视化结果
绘制散点图以直观显示不同群组之间的分布情况。
```python
plt.figure(figsize=(8, 6))
plt.scatter(df['Feature_1'], df['Feature_2'], c=predicted_labels, s=50, cmap='viridis')
plt.scatter(centers[:, 0], centers[:, 1], c='red', s=200, alpha=0.75);
plt.title('K-means Clustering')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()
```
上述代码片段展示了完整的基于Python的KMeans聚类过程[^1]。
阅读全文