聚类算法:聚类算法中的距离度量

聚类算法:聚类算法中的距离度量

在这里插入图片描述

引言

1. 聚类算法概述

聚类算法是一种无监督学习方法,用于将数据集中的样本分组到不同的簇中,使得同一簇内的样本彼此相似,而不同簇的样本彼此相异。这种相似性通常通过计算样本之间的距离来衡量。聚类算法广泛应用于数据挖掘、机器学习、图像分析、生物信息学等领域,帮助我们发现数据的内在结构和模式。

2. 距离度量在聚类中的重要性

距离度量是聚类算法的核心组成部分,它定义了数据点之间的相似度或差异度。选择合适的距离度量对于聚类结果的准确性和有效性至关重要。不同的距离度量方法适用于不同类型的数据和聚类需求,例如欧氏距离适用于数值型数据,而余弦相似度则更适合于文本数据的聚类。

距离度量方法

3. 欧氏距离

欧氏距离是最常用的距离度量方法之一,它计算两个点在多维空间中的直线距离。对于两个n维向量( x ⃗ = ( x 1 , x 2 , . . . , x n ) \vec{x} = (x_1, x_2, ..., x_n) x =(x1,x2,...,xn) )和( y ⃗ = ( y 1 , y 2 , . . . , y n ) \vec{y} = (y_1, y_2, ..., y_n) y =(y1,y2,...,yn) ),欧氏距离定义为:

d ( x ⃗ , y ⃗ ) = ∑ i = 1 n ( x i − y i ) 2 d(\vec{x}, \vec{y}) = \sqrt{\sum_{i=1}^{n}(x_i - y_i)^2} d(x ,y )=i=1n(xiyi)2

3.1 示例代码

import numpy as np

def euclidean_distance(x, y):
    """
    计算两个向量之间的欧氏距离
    :param x: 向量x
    :param y: 向量y
    :return: 欧氏距离
    """
    return np.sqrt(np.sum((x - y) ** 2))

# 示例数据
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])

# 计算距离
distance = euclidean_distance(x, y)
print("欧氏距离:", distance)

4. 曼哈顿距离

曼哈顿距离,也称为城市街区距离,计算两个点在多维空间中沿轴方向的总距离。对于两个n维向量( x ⃗ \vec{x} x )和( y ⃗ \vec{y} y ),曼哈顿距离定义为:

d ( x ⃗ , y ⃗ ) = ∑ i = 1 n ∣ x i − y i ∣ d(\vec{x}, \vec{y}) = \sum_{i=1}^{n}|x_i - y_i| d(x ,y )=i=1nxiyi

4.1 示例代码

import numpy as np

def manhattan_distance(x, y):
    """
    计算两个向量之间的曼哈顿距离
    :param x: 向量x
    :param y: 向量y
    :return: 曼哈顿距离
    """
    return np.sum(np.abs(x - y))

# 示例数据
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])

# 计算距离
distance = manhattan_distance(x, y)
print("曼哈顿距离:", distance)

5. 余弦相似度

余弦相似度用于衡量两个非零向量之间的角度,适用于高维空间中的文本数据聚类。余弦相似度的值范围在-1到1之间,值越接近1表示两个向量越相似。

similarity ( x ⃗ , y ⃗ ) = cos ⁡ ( θ ) = x ⃗ ⋅ y ⃗ ∣ ∣ x ⃗ ∣ ∣ ⋅ ∣ ∣ y ⃗ ∣ ∣ \text{similarity}(\vec{x}, \vec{y}) = \cos(\theta) = \frac{\vec{x} \cdot \vec{y}}{||\vec{x}|| \cdot ||\vec{y}||} similarity(x ,y )=cos(θ)=∣∣x ∣∣∣∣y

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kkchenjj

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值