目录
一、前言
接下来,我们进入数据探索与可视化的最后一个部分:数据样本距离。对于给定的数据样本,每个样本具有多个特征,因此每个样本均是高维空间的一个点,那么在高维空间当中如何比较样本之间的距离远近或相似程度是个重要的点。
二、介绍
距离在聚类分析,分类等多种应用中都有重要地位,不同的距离度量的方式可能会有不同的分析结果,那么接下来让我们来看看都有哪些:
Ⅰ.欧式距离和曼哈顿距离
①欧式距离
欧式距离可解释为连接两个点的线段的长度
。欧式距离公式非常简单,使用勾股定理从这些点的笛卡尔坐标
计算距离。
缺点:尽管这是一种常用的距离度量,但欧式距离并不是尺度不变
的,这意味着所计算的距离可能会根据特征的单位发生倾斜
。通常,在使用欧式距离度量之前,需要对数据进行归一化处理
。
此外,随着数据维数的增加,欧氏距离的作用也就越小。这与维数灾难(curse of dimensionality)
有关。
import pandas as pd
import matplotlib.pyplot as plt
datadf=pd.read_csv(r'C:\Users\asuspc\Desktop\program\data\chap2\种子数据.csv')
datadf2=datadf.iloc[:,0:7]
from scipy.spatial import distance
dist=distance.cdist(datadf2,datadf2,'euclidean')
plot.figure(figsize=(8,6))
sns.heatmap(dist,cmap='YlGnBu')
plt.title('Euclidean')
plt.show()
cdist是两个数组之间求距离返回X*Y一个矩阵,还有一个pdist是对于一个数组内部的元素反复比对,返回一个列表求距离。然后我们用seaborn包中的热力图方法heatmap,将求好的欧氏距离dist放入,设置的cmap参数是指将数据值映射到颜色空间的不同颜色。