📜  确定k最优值的剪影算法

📅  最后修改于: 2022-05-13 01:55:00.390000             🧑  作者: Mango

确定k最优值的剪影算法

无监督学习算法的基本步骤之一是确定数据可以划分成的簇的数量。轮廓算法是确定无监督学习技术的最佳聚类数的众多算法之一。

在剪影算法中,我们假设数据已经通过聚类技术(典型的 K-Means 聚类技术)聚类成 k 个聚类。然后对于每个数据点,我们定义以下内容:-

C(i) - 分配给第 i 个数据点的集群

|C(i)| – 簇中分配给第 i 个数据点的数据点数

a(i) – 它衡量第 i 个数据点对其集群的分配情况

a(i) = \frac{1}{|C(i)|-1}\sum _{C(i), i\neq j}d(i, j)

b(i) - 它被定义为与最近的不是它的集群的集群的平均相异度

b(i) = min_{i\neq j}(\frac{1}{|C(j)|}\sum _{j\epsilon C(j)}d(i, j))

轮廓系数 s(i) 由下式给出:-

s(i) = \frac{b(i)-a(i)}{max(a(i), b(i))}

我们确定每个 k 值的平均轮廓,并且对于s(i) 的最大值的 k 值被认为是无监督学习算法的最佳聚类数。

让我们考虑以下数据:-

S.NoX1X2
1.-7.366.37
2.3.08-6.78
3.5.03-8.31
4.-1.93-0.92
5.-8.866.60

我们现在将 k 的值从 2 迭代到 5。我们假设不存在所有数据点都可以最优地聚集到 1 个集群中的实际数据。

我们为每个 k 值构建下表:-

k = 2

S.Noa(i)b(i)s(i)
1.5.3114.10.62
2.2.4713.150.81
3.2.4714.970.84
4.9.668.93-0.076
5.5.8819.160.69

s(i) 的平均值 = 0.58

k = 3

S.Noa(i)b(i)s(i)
1.1.529.090.83
2.2.477.710.68
3.2.4710.150.76
4.07.711
5.1.5217.930.92

s(i) 的平均值 = 0.84

k = 4

S.Noa(i)b(i)s(i)
1.1.529.090.83
2.infinite2.470
3.infinite2.470
4.infinite7.710
5.1.5210.230.85

s(i) 的平均值 = 0.37

k = 5

S.Noa(i)b(i)s(i)
1.infinite1.520
2.infinite2.470
3.infinite2.470
4.infinite7.710
5.infinite1.520

s(i) 的平均值 = 0

我们看到 s(i) 的最大值存在于 k = 3。因此我们得出结论,给定数据的最佳聚类数是 3。