例题:
从21个工厂中抽出同类产品,每个产品测两个指标,欲将各厂的质量情况进行分类。
工厂 | 指标1 | 指标2 |
1 | 0 | 6 |
2 | 0 | 5 |
3 | 2 | 5 |
4 | 2 | 3 |
5 | 4 | 4 |
6 | 4 | 3 |
7 | 5 | 1 |
8 | 6 | 2 |
9 | 6 | 1 |
10 | 7 | 0 |
11 | -4 | 3 |
12 | -2 | 2 |
13 | -3 | 2 |
14 | -3 | 0 |
15 | -5 | 2 |
16 | 1 | 1 |
17 | 0 | -1 |
18 | 0 | -2 |
19 | -1 | -1 |
20 | -1 | -3 |
21 | -3 | -5 |
解:
1.MATLAB
dt = xlsread('Kmeans.xlsx');
gc = dt(2:end, 1);
data = zscore(dt(2:end, 2:3));
idx = kmeans(data, 4, 'replicates', 10);
[S, H] = silhouette(data, idx);
gc(idx == 1), gc(idx == 2), gc(idx == 3), gc(idx == 4)
编译得
ans =
17
18
19
20
21
ans =
7
8
9
10
ans =
2
3
4
5
6
16
ans =
11
12
13
14
15
由柱状图可知,分四类效果基本上是可以的。
2.SPSS
聚类成员
案例号 工厂 聚类 距离
1 1 2 2.836
2 2 2 2.181
3 3 2 1.152
4 4 2 .869
5 5 2 2.148
6 6 2 2.308
7 7 4 1.000
8 8 4 1.000
9 9 4 .000
10 10 4 1.414
11 11 1 1.342
12 12 1 1.414
13 13 1 .447
14 14 1 1.844
15 15 1 1.612
16 16 2 2.983
17 17 3 1.720
18 18 3 1.077
19 19 3 1.400
20 20 3 .600
21 21 3 3.280