数据预处理——邻近度

本文介绍了几种常见的距离度量方法,包括欧氏距离、曼哈顿距离、切比雪夫距离及闵可夫斯基距离,并探讨了它们在不同应用场景下的优缺点。此外,还介绍了针对二元数据的相似度测量方法,如简单匹配系数、Jaccard系数及余弦相似性等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

邻近度(proximity)

两个对象之间的相似度和相异度。
相似度(similarity):衡量两个对象相似程度的数字度量,通常在0(不相似)和1(完全相似)之间。
相异度(dissimilarity):又称为距离,衡量两个对象差异程度的数值度量,对象越类似相异度越低。通常[0,1]之间取值,但也有0到正无穷取值。
相似性和相异性之间可以进行转化。
s作为相似度符号;d作为相异度符号。

1.针对单一属性类型的邻近度测量

x,y是两个对象
在这里插入图片描述

2.序数属性的邻近度测量

序数属性,比如“差、一般、还ok、好、非常好”这五个就组成序数属性,可以采用把属性映射到0-1当中的整数范围进行度量,但是在进行算数技术的过程中,其实对于结果的解释性会不佳。

3.对连续数据对象邻近度测量——距离

3.1欧氏距离,两点间直线距离。
(1)二维平面上两点a(x1,y1)与b(x2,y2)间的欧氏距离:
在这里插入图片描述
(3)两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的欧氏距离:
在这里插入图片描述
也可以用表示成向量运算的形式:
在这里插入图片描述
3.2曼哈顿距离:
要从一个十字路口开车到另外一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。实际驾驶距离就是这个“曼哈顿距离”。
在这里插入图片描述
(1)二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离
在这里插入图片描述
(2)两个n维向量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的曼哈顿距离
在这里插入图片描述
3.3切比雪夫距离
国际象棋国王走一步能够移动到相邻的8个方格中的任意一个。那么国王从格子(x1,y1)走到格子(x2,y2)最少需要多少步?自己走走试试。你会发现最少步数总是max(| x2-x1 | , | y2-y1 | ) 步。有一种类似的一种距离度量方法叫切比雪夫距离。
在这里插入图片描述
(1)二维平面两点a(x1,y1)与b(x2,y2)间的切比雪夫距离
在这里插入图片描述
(2)两个n维向量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的切比雪夫距离
在这里插入图片描述
3.4闵可夫斯基距离(MinkowskiDistance)
闵氏距离不是一种距离,而是一组距离的定义。
两个n维变量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的闵可夫斯基距离定义为:
在这里插入图片描述
其中p是一个变参数。
当p=1时,就是曼哈顿距离
当p=2时,就是欧氏距离
当p→∞时,就是切比雪夫距离
根据变参数的不同,闵氏距离可以表示一类的距离。

举个例子:二维样本(身高,体重),其中身高范围是150190,体重范围是5060,有三个样本:a(180,50),b(190,50),c(180,60)。那么a与b之间的闵氏距离(无论是曼哈顿距离、欧氏距离或切比雪夫距离)等于a与c之间的闵氏距离,但是身高的10cm真的等价于体重的10kg么?因此用闵氏距离来衡量这些样本间的相似度很有问题。
简单说来,闵氏距离的缺点主要有两个:(1)将各个分量的量纲(scale),也就是“单位”当作相同的看待了。(2)没有考虑各个分量的分布(期望,方差等)可能是不同的。
3.5标准欧氏距离的定义
  标准化欧氏距离是针对简单欧氏距离的缺点而作的一种改进方案。先将各个分量都“标准化”到均值、方差相等,然后计算距离。
标准化后的值 = ( 标准化前的值 - 分量的均值 ) /分量的标准差

3.6. 马氏距离(MahalanobisDistance)
马氏距离在测量数据间相关程度高的时候效果佳。
(1)马氏距离定义
有M个样本向量X1~Xm,协方差矩阵记为S,均值记为向量μ,则其中样本向量X到u的马氏距离表示为:
在这里插入图片描述
而其中向量Xi与Xj之间的马氏距离定义为:

若协方差矩阵是单位矩阵(各个样本向量之间独立同分布),则公式就成欧式距离:
在这里插入图片描述

距离的通用性质:

距离可以用来衡量相似性或者相异性,通常距离有三个性质
非负性:距离d>=0
对称性:d(x,y,z…)=d(…,z,y,x)
三角不等式性:对于x,y,z,d(x,z)<=d(x,y)+d(y,z)
但是在距离度量相似性的时候三角不等式性通常不成立,换言之,存在非对称的相似性度量。

为什么欧式距离用的最多?最被优先采用呢?

因为欧式距离的平方更好的被求导,单调的。

4.二元的数据对象邻近度度量

二元数据:两个仅包含二院属性的对象之间的相似度测量成为相似度系数(similarity coefficient),x=(0,1,1,1,0,1,0,…),y=(1,1,0,0,0,0,0,0,…)。比如是否问题等。两个对象分别可以生成四个量:
在这里插入图片描述

4.1简单匹配系数
比如用于判断是非题目的答案的比较等。
在这里插入图片描述

4.2jaccard系数
比如在买东西时候,1是买,0是不买,通常我们在比较客户买的两种商品数量的时候,我们常不考虑00这类的情况。换言之,也就是jaccard系数度量非对称的二元对象效果更好,克服稀疏的0值带来的困扰
在这里插入图片描述
当变成两个集合的时候
p:样本A与B都是1的维度的个数
q:样本A是1,样本B是0的维度的个数
r:样本A是0,样本B是1的维度的个数
s:样本A与B都是0的维度的个数在这里插入图片描述
Jaccard距离:
在这里插入图片描述
jaccard扩展到非二元属性时的度量:
Tanimoto系数
在这里插入图片描述
4.3余弦相似性

余弦相似性不考虑量值,也就是不考虑x,y的长度,只是考虑x和y的夹角。比如文本数据分析,对于1000字两个文档,文档1“我”字出现10次,“你”字出现19次;文档2里“我”字出现13次,“你”字出现11次。因此x=(10,19),y=(13,11)。在计算时候余弦相似性公式会把“标准化”将分子分母约去,使得最后结果到0-1之间。
在这里插入图片描述
在这里插入图片描述

对象之间的属性的邻近度度量——相关性

相关性
对象之间的属性度量问题,也就是度量变量的。比如有完全正相关,完全负相关,线性相关等等。

皮尔逊相关系数——衡量线性相关性
在这里插入图片描述

5。邻近度选择考虑。。。

数据类型(连续或二值、词向量…)
数据稀疏?
连续型数据的差异

ps.作为小白,参考蛮多前人资料,后续慢慢学,慢慢补充!

### 高质量数据预处理的方法与技巧 #### 清洗和处理缺失值 在实际项目中,原始数据往往存在噪声或错误。为了确保数据分析的有效性和准确性,在开始任何分析之前,必须先清理数据中的异常情况。这包括识别并修正重复记录、删除无关变量以及填补或移除含有大量空白字段的观测值[^1]。 对于缺失值而言,有多种策略可供选择:简单地丢弃含缺省项的对象;利用均值/众数填充数值型属性;采用最邻近样本法来估计分类标签;甚至可以借助机器学习算法预测未知条目。每种方式都有其适用场景,需依据具体业务需求权衡利弊后选用最合适的一种或组合方案[^2]。 #### 特征缩放与归一化 不同尺下的测量单位可能导致某些特征占据主导地位而掩盖其他重要因素的影响。因此,在许多情况下有必要执行标准化操作使各维处于同一量级范围内。常见的做法是将所有输入调整到零均值单位方差分布(Z-score normalization),或是线性映射至0-1区间内实现最小最大规范化(min-max scaling)。 ```python from sklearn.preprocessing import StandardScaler, MinMaxScaler scaler = StandardScaler() data_scaled = scaler.fit_transform(data) min_max_scaler = MinMaxScaler(feature_range=(0, 1)) data_normalized = min_max_scaler.fit_transform(data) ``` #### 类别特征编码 当面对定性的描述信息时,则要将其转化为计算机能够理解和使用的定量表示形式——即所谓的“编码”。一种直观的方式就是给每一个可能取值分配独一无二整数编号(one-hot encoding),这样做的好处是不会引入额外假设条件影响后续计算过程;然而如果类别数目过多可能会造成维过高问题。另一种替代方案称为目标导向编码(target guided encodings), 它们试图捕捉潜在关联模式从而减少冗余同时保留有用信号。 ```python import pandas as pd from sklearn.preprocessing import OneHotEncoder encoder = OneHotEncoder(sparse=False) encoded_features = encoder.fit_transform(pd.DataFrame(categorical_data)) # 或者使用pandas自带函数get_dummies pd.get_dummies(df['category_column']) ``` #### 数据规约与降维技术 随着信息技术的发展,获取海量多源异构资料变得越来越容易,但这同时也带来了存储成本增加和技术复杂上升等问题。为此人们提出了诸如主成分分析(PCA)这样的统计学工具用于降低原空间维的同时尽可能保持原有结构特性不变;还有t-SNE等可视化手段帮助探索隐藏于高维背后的内在联系[^5]。 ```python from sklearn.decomposition import PCA pca = PCA(n_components=2) reduced_dimensions = pca.fit_transform(high_dimensional_data) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值