K-means聚类分析:年龄、性别、BMI等指标的聚类结果

本案例使用K-means聚类算法对年龄、性别、BMI、白细胞计数、红细胞计数、血红蛋白计数、血小板计数等指标进行聚类分析,并通过散点图展示聚类结果。

数据

年龄	性别	BMI	白细胞计数	红细胞计数	血红蛋白计数	血小板计数
56	1	35	7425	4248807	14	112132
46	1	29	12101	4429425	10	129367
57	1	33	4178	4621191	12	151522
59	1	32	3661	4606375	11	187684
58	2	22	11785	3882456	15	131228
42	2	26	11620	4747333	12	177261
48	2	30	7335	4405941	11	216176
44	1	23	10480	4608464	12	148889
45	1	30	6681	4455329	12	98200
37	2	24	4437	4265042	12	166027
36	1	22	6052	4130219	13	144266
45	2	25	9279	4116937	13	203003
34	1	22	5638	4321603	14	141110
40	2	32	11507	4165603	14	222874
58	1	34	8035	4896464	11	149506
61	1	35	10843	4165219	10	197640
55	2	24	8476	4466885	14	163276
56	1	27	6599	4448466	15	190642
35	2	23	4845	4436025	10	111819
57	2	23	5925	4031637	15	116558
33	1	25	9952	4994729	10	109023
41	1	23	7961	4595487	14	94733
39	2	29	7136	4625248	10	211363
33	2	24	6057	4300774	11	222135
43	2	34	6648	4529290	15	109871
51	1	34	11032	4052583	15	94503
39	2	33	5234	4906158	12	190314
55	2	33	5383	3999388	15	182262
58	2	35	7378	3998925	10	201114
47	2	25	7486	4599496	11	167354
61	1	33	11770	4581099	13	125642
37	1	27	6441	4075477	11	118742
41	1	29	10304	4152639	14	120812
60	2	32	7365	4023215	14	222471
40	2	28	3009	4354206	14	95604
58	1	23	10236	4797923	14	101512
36	1	23	4387	4735873	14	177677
47	2	35	11924	3902488	14	97785
50	1	33	10140	4570417	10	209827
43	1	33	5420	4281958	10	186992
59	2	26	6249	4327627	12	138099
33	2	31	5094	4679591	15	123295
56	2	23	4797	4054154	14	175906
41	1	33	5041	4143165	13	120871
59	1	32	6901	4421722	12	212279
47	1	27	7256	3939606	14	197798
50	2	34	8219	4003477	14	217699
39	2	30	4418	4651439	10	184013
48	1	33	6358	4149153	15	120975

代码

# 导入数据
data <- read.csv('data.csv', sep = '\t')

# 标准化处理
data_scale <- scale(data[, 2:7])

# 聚类
set.seed(123)
cluster <- kmeans(data_scale, 3, nstart = 20)

# 查看聚类结果
cluster

# 绘制散点图
library(factoextra)
fviz_cluster(cluster, data_scale, stand = FALSE, geom = 'point', ellipse.type = 'convex')

结果

K-means clustering with 3 clusters of sizes 20, 13, 17

Cluster means:
          BMI white_blood_cell red_blood_cell hemoglobin platelet_count
1 -0.8580610       -0.3220903     -0.2345683 -0.7117188     -0.1963474
2  1.0456703       -0.0612901      0.1237586  0.1744389      0.0339192
3  0.0439526        1.3486895      1.2082837  1.1341257      1.0771437

Clustering vector:
 [1] 2 1 1 1 3 2 1 2 1 2 2 2 2 3 1 3 2 2 1 1 3 2 1 3 1 3 1 2 2 1 2 1 2 2 1 3 3 2 1 1 2 3 1 1 2 3

Within cluster sum of squares by cluster:
[1] 60.49334 27.53301 54.71923
 (between_SS / total_SS =  70.8 %)

Available components:

[1] 'cluster'      'centers'      'totss'        'withinss'     'tot.withinss'
[6] 'betweenss'    'size'         'iter'         'ifault'

散点图

[散点图]

结论

从结果和散点图中可以看出,数据被分成了三类。

  • 第一类的人BMI较低,白细胞计数、红细胞计数、血红蛋白计数、血小板计数都比较低;
  • 第二类的人BMI较高,其他指标都比较低;
  • 第三类的人各项指标都比较高。

注意:

  • 本案例仅供参考,实际应用中需根据具体情况进行调整。
  • 聚类结果受数据预处理、聚类算法参数等因素的影响。
  • 聚类结果的解释需结合实际情况进行分析。

相关知识

  • K-means聚类算法
  • 数据标准化
  • 散点图
K-means聚类分析:年龄、性别、BMI等指标的聚类结果

原文地址: https://www.cveoy.top/t/topic/owpf 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录