### 使用最大最小距离法进行聚类的手动计算
#### 最大距离法(完全连接)
在最大距离法中,两个簇之间的距离定义为这两个簇中最远两点间的欧几里得距离。这意味着要找到属于两个不同簇的点的最大距离。
假设有一组二维数据点集合 \( P = \{p_1, p_2, ..., p_n\} \),其中每个点 \( p_i=(x_i,y_i) \)[^1]。初始状态下,每个点都视为独立的一个簇。随着算法推进,最近的两个簇会不断合并直到满足特定条件为止。
对于任意两簇 C 和 D ,它们之间的距离 d(C,D) 定义为:
\[ d(C,D)=max_{c∈C,d∈D}\| c-d \| \]
即求解所有可能配对中的最大值作为这两簇的距离。
#### 最小距离法(单连接)
相反地,在最小距离法中,两个簇之间的距离被定义为其成员间最短路径长度——也就是所谓的“单链”。这意呈着寻找来自不同群集中彼此最为接近的一对样本点,并以其间距衡量整体关联程度。
同样设存在一组离散型观测对象组成的群体 S={s₁,s₂,…,sn}, 对于任选二子集 A,B ⊆S , 则有:
\[ d(A,B)=min_{a∈A,b∈B}\| a-b \| \]
此表达式表明应选取能使上述公式取极小值得那一对元素来表征整个类别间隔大小。
#### 示例过程
考虑简单情况下的四个二维平面上的数据点 { (0, 0), (1, 1), (-1, -1), (5, 5)} 。按照以下流程执行操作:
1. **初始化**:将每一个单独的数据点作为一个簇。
```plaintext
Cluster Set: {{(0,0)}, {(1,1)}, {(-1,-1)}, {(5,5)}}
```
2. **计算簇间距离**:分别采用最大/最小距离准则评估各组合并可能性;记录下当前最小或最大的那个选项准备下一步处理。
3. **更新簇列表**:依据第二步所得结果调整现有分组状态,即将选定的一对合并且移除旧项加入新实体至最新版cluster set 中去。
4. **重复迭代**:持续循环以上动作直至达到预设终止标准比如只剩下一个超级团块或者形成了固定数量的小团体等情形结束运算。
在这个例子中,如果应用的是最大距离法则会在早期阶段倾向于保持较远处的对象各自分离而不急于将其纳入更大规模的整体之内;反之若是采取了最小距离策略则更有可能迅速促成局部区域内的紧密联合现象发生。
```python
import numpy as np
from scipy.spatial.distance import pdist, squareform
points = [(0, 0), (1, 1), (-1, -1), (5, 5)]
dist_matrix_max = squareform(pdist(points, metric='chebyshev')) # For complete linkage
dist_matrix_min = squareform(pdist(points)) # Default is Euclidean distance for single linkage
print("Distance Matrix using Maximum Distance Method:\n", dist_matrix_max)
print("\nDistance Matrix using Minimum Distance Method:\n", dist_matrix_min)
```