python - “K-means”聚类分析
问题描述
我想得到mean、min、max等值。标准开发。对于使用 k-means 方法计算的每组集群。下面的代码是否正确?
import pandas as pd
from sklearn.cluster import KMeans
dataset = pd.read_csv("C:/Users/../cardio_train_py.csv", sep=';')
clusterDB_1 = dataset[['Age','BMI','cardio']].copy()
kmeans = KMeans(n_clusters=8).fit(clusterDB_1)
X=[0,1,2,3,4,5,6,7]
print('Age mean() for each cluster')
for x in X:
check = clusterDB_1[kmeans.labels_ == x]
print(check['Age'].mean())
print('BMI mean() for each cluster')
for x in X:
check = clusterDB_1[kmeans.labels_ == x]
print(check['BMI'].mean())
print('cardio == 0 count() for each cluster')
for x in X:
check = clusterDB_1[kmeans.labels_ == x]
print(len(check[check['cardio'] == 1]))
我问是因为获得的值(例如,年龄和 BMI 和心脏计数的平均值 == 0)与在 Statistica 中获得的值不同(照片显示程序Statistica 结果的结果)下面是 BMI 的结果( Python计算)
24.468587736260996
24.047855933307282
30.548865468674116
31.98410463004993
32.89129084635681
166.57357142857146
41.97845737483085
24.16813400017246
这是我的数据库 => https://www.easypaste.org/file/JcyGhA8Y/cardio.train.py.csv?lang=pl
感谢所有帮助和提示:)
解决方案
以下将在一行中完成您想要的操作:
clusterDB_1.groupby(kmeans.labels_).mean()
推荐阅读
- javascript - 在函数下拉列表中设置默认值
- python - 如果两个以上的唯一值过滤 df - pandas
- flutter - 在 NestedScrollView 主体内的 TabBarView 中使用 jumpTo 或 animateTo
- docker - 在使用 swarm 的 docker 容器中,在哪里可以找到使用 docker-compose 构建的 dotnet 应用程序构建的发布文件?
- mongodb - MongoDB - 聚合匹配和排序 - 空匹配非常慢(带索引)
- java - 如何在 Spring Boot 应用程序中引发错误情况
- regex - 如何编写正则表达式多行?
- sql - 当有两个或多个逻辑层次结构时,如何提取维度表中列的层次结构?
- php - 如何解决 Laravel 安装问题。我的开发人员使用 Mac OS,而我有 Ubuntu
- sql - 如何在 SQL 中计算生存率?