linkage()函数的参数分别是什么意思,函数的作用是什么
时间: 2023-10-14 12:27:22 浏览: 70
`linkage()` 函数是用于聚类分析的函数,它的作用是计算样本之间的距离,并将其用于聚类。它的参数包括:
1. `y`:一个 $n \times n$ 的距离矩阵,其中 $n$ 是样本数量。
2. `method`:指定聚类的方法,可以是 `single`、`complete`、`average`、`weighted`、`centroid`、`median` 或 `ward`。
3. `metric`:指定距离的度量方式,可以是 `euclidean`、`minkowski`、`cityblock`、`seuclidean`、`cosine`、`correlation` 等。
其中,距离矩阵 `y` 是一个上三角矩阵,包含了样本之间的距离信息。距离矩阵的计算可以使用 `pdist()` 函数来实现,例如:
```python
from scipy.spatial.distance import pdist, squareform
# 生成随机数据
X = np.random.rand(10, 2)
# 计算欧式距离
distances = pdist(X, metric='euclidean')
# 转换为距离矩阵
y = squareform(distances)
```
聚类方法 `method` 有多种选择,例如:
- `single`:最近邻聚类法,将最近的两个样本合并为一个簇。
- `complete`:最远邻聚类法,将最远的两个样本合并为一个簇。
- `average`:平均距离法,将两个簇中所有样本之间的距离的平均值作为簇与簇之间的距离。
- `ward`:基于方差的聚类方法,通过最小化簇内方差的增加量来合并簇。
距离度量 `metric` 也有多种选择,例如:
- `euclidean`:欧式距离。
- `minkowski`:闵可夫斯基距离。
- `cityblock`:曼哈顿距离。
- `cosine`:余弦距离。
`linkage()` 函数的返回值是一个 $n-1$ 行、4列的矩阵,其中 $n$ 是样本数量。每一行表示一个合并的簇,前两列是合并的簇的索引,第三列是簇与簇之间的距离,第四列是合并后的簇中样本的数量。