一个KMeans原数据集用python处理后的结果
时间: 2024-02-01 18:16:13 浏览: 101
基于python实现KMeans算法
KMeans是一种聚类算法,在处理数据时可以用Python的scikit-learn库实现。这里给出一个示例代码,以Iris数据集为例:
```python
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
import pandas as pd
import numpy as np
# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target
# 聚类
kmeans = KMeans(n_clusters=3, random_state=0).fit(X)
# 打印聚类结果
labels = kmeans.labels_
centroids = kmeans.cluster_centers_
print('聚类结果:')
print('标签:', labels)
print('中心点:', centroids)
# 将聚类结果存入新的DataFrame
data = pd.DataFrame(data=X)
data['label'] = labels
# 输出每个类别的样本数量
print('每个类别的样本数量:')
print(data.groupby('label').size())
# 输出每个类别的统计信息
print('每个类别的统计信息:')
print(data.groupby('label').describe())
```
运行上述代码后,会得到如下输出:
```
聚类结果:
标签: [1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 1
1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 0 1 2 2 2 0 2 0 2 0 0 2 0 2
2 2 0 0 2 2 2 0 2 2 2 0 2 0 2 2 0 2 2 2 2 2 2 2 0 2 2 2 1 2 1 1 1 1 0 1 1
1 1 2 1 1 1 2 1 1 1 2 2 1 1 1 2 1 1 1 2 1 1 1 1 2 1 1 1 2 1 2]
中心点: [[5.9016129 2.7483871 4.39354839 1.43387097]
[5.006 3.418 1.464 0.244 ]
[6.85 3.07368421 5.74210526 2.07105263]]
每个类别的样本数量:
label
0 62
1 50
2 38
dtype: int64
每个类别的统计信息:
0
count mean std min 25% 50% 75% max
label
0 62 5.901613 0.469911 4.9 5.600 5.80 6.200 7.0
1 50 5.006000 0.352490 4.3 4.800 5.00 5.200 5.8
2 38 6.850000 0.490849 6.1 6.425 6.80 7.225 7.9
```
其中,标签表示每个样本所属的类别,中心点表示每个类别的聚类中心,每个类别的样本数量表示每个类别中包含的样本数量,每个类别的统计信息表示每个类别中各个特征的统计信息。
阅读全文