数据的属性与相似性

目录

    • 一、数据集的结构
      • (一)二维表
      • (二)数据矩阵
    • 二、属性的类型
      • (一)连续属性
      • (二)离散属性
      • (三)分类属性
      • (四)二元属性
      • (五)序数属性
      • (六)数值属性
    • 三、相似度与相异度
      • (一)数值属性的距离
      • (二)分类属性的相似度
      • (三)余弦相似度
      • (四)混合属性的相异度


一、数据集的结构

  数据挖掘的数据集 S S S,在数学上可以定义为 d d d 维向量的一个集合,即 S = { X 1 , X 2 , ⋯   , X n } S=\{X_1 ,X_2, \cdots,X_n\} S={X1,X2,,Xn},其中 X i = ( x i 1 , x i 2 , ⋯   , x i d ) ( i = 1 , 2 , ⋯   , n ) X_i=(x_{i1},x_{i2},\cdots,x_{id}) (i=1,2,\cdots,n) Xi=(xi1,xi2,,xid)(i=1,2,,n),且将 X i X_i Xi 称为第 i i i 个向量的标识符(identifier)。

(一)二维表

  许多数据挖掘任务都假定数据集 S S S 是一张二维表的结构(表7-1),其中的数据对象 X i ( i = 1 , 2 , ⋯   , n ) X_i (i=1,2,\cdots,n) Xi(i=1,2,,n) 在表中以一条记录的形式表示。

在这里插入图片描述

表7-1 数据集S对应的二维表

1、标识名区域

  二维表的左上角 id 所在单元格,说明其所在列下面的所有字符为数据对象的标识符,且每个标识符是唯一的。

2、标识符区域

  在标识名区域的下面,每一个标识符都是所在行的唯一标识。比如 X i X_i Xi 就代表第i行对应的 d d d 维向量 ( x i 1 , x i 2 , ⋯   , x i d ) (x_{i1},x_{i2},\cdots,x_{id}) (xi1,xi2,,xid)

3、属性名区域

  在标识名的右侧,每一列称为一个属性(attribute)或字段(field),并用一个字符串命名,比如 A 1 , A 2 , … , A d A_1, A_2, …,A_d A1,A2,,Ad 称为属性名,它们规定了该列下面数据的性质或特性,它们因实际问题不同而取不同的名称。

4、数据区域

  在标识符右侧和属性名下面,每一列的数据具有相同的性质或来自具有相同性质的数据集合。

  若将二维表以名为 S S S 的对象存放在关系数据库中,则为基本表或关系,并将第一行称为表的结构,id 所在列称为主键列或主键属性,每个 X i X_i Xi 称为主键值, X i X_i Xi 所在的行称为元组或记录。因此,将主键值 X i X_i Xi 连同对应的 d d d 维向量作为一个记录 ( X i , x i 1 , x i 2 , ⋯   , x i d ) (X_i,x_{i1},x_{i2},\cdots,x_{id}) (Xi,xi1,xi2,,xid) 来表示向量 X i = ( x i 1 , x i 2 , ⋯   , x i d ) X_i=(x_{i1},x_{i2},\cdots,x_{id}) Xi=(xi1,xi2,,xid)

例 7-1 设有数据集 S = { X 1 , X 2 , ⋯   , X 8 } S=\{X_1 ,X_2, \cdots,X_8\} S={X1,X2,,X8} 为某商场的顾客消费记录,其中
X 1 X_1 X1= (男, 已婚, 博士, 1230); X 2 X_2 X2= (男, 未婚, 硕士, 2388); X 3 X_3 X3= (男, 离异, 学士, 3586);
X 4 X_4 X4= (女, 已婚, 博士, 3670); X 5 X_5 X5= (男, 未婚, 硕士, 1025); X 6 X_6 X6= (女, 丧偶, 其它, 2890)
向量的每个分量值分别表示性别、婚姻状况、学位以及当月消费额等,其中,学位取值 “其它” 表示为大专及以下学历者。请构造 S S S 的二维表,并举例说明表的结构、主键属性和记录等。

解: 因为 S S S d = 4 d=4 d=4 维向量的集合,现有6个元素。根据 d d d 维向量集合 S S S 的二维表构造方法,可得表7-2所示的二维表,并另取名为 Customers。

在这里插入图片描述

表7-2 描述顾客消费记录的二维表Customers

(二)数据矩阵

  对于 d d d 维向量的集合 S = { X 1 , X 2 , ⋯   , X n } S=\{X_1 ,X_2, \cdots,X_n\} S={X1,X2,,Xn},在有些数据挖掘任务中也常用 n × d n×d n×d 的数据矩阵结构来表示。
S = ( x 11 ⋯ x 1 j ⋯ x 1 d ⋮ ⋮ ⋮ ⋮ ⋮ x i 1 ⋯ x i j ⋯ x i d ⋮ ⋮ ⋮ ⋮ ⋮ x n 1 ⋯ x n j ⋯ x n d ) (7-1) S=\left( \begin{matrix} x_{11} & \cdots & x_{1j} & \cdots & x_{1d} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ x_{i1} & \cdots & x_{ij} & \cdots & x_{id} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ x_{n1} & \cdots & x_{nj} & \cdots & x_{nd} \end{matrix} \right)\tag{7-1} S= x11xi1xn1x1jxijxnjx1dxidxnd (7-1)

i i i 行表示第 i i i 个向量 X i = ( x i 1 , x i 2 , ⋯   , x i d ) X_i=(x_{i1},x_{i2},\cdots,x_{id}) Xi=(xi1,xi2,,xid),称为第 i i i 个数据对象。第 k k k 列表示第 k k k 个属性,因此 x i k x_{ik} xik 称为第 i i i 个数据对象的第 k k k 个属性值或分量。由于矩阵的行对应数据对象,列对应于属性,因此 S S S 也称为 “对象-属性” 矩阵。

例 7-2 请用数据矩阵结构表示例 7-1所示的顾客消费记录数据集 S = { X 1 , X 2 , ⋯   , X 6 } S=\{X_1 ,X_2, \cdots,X_6\} S={X1,X2,,X6}

解: 因为例 7-1所示的顾客消费记录数据集 S S S 是一个有 6 个数据对象的 4 维向量集合,因此可以用 6 × 4 6×4 6×4 的数据矩阵来表示。


  二维表看上去更容易理解,因为它在消费数据的基础上增加了表结构及其属性名称,并且用标识符(主键值)来唯一标识数据对象的数据记录。数据矩阵存储结构仅存放消费数据,优点是没有引入任何冗余的数据,但理解起来比较困难。比如,单从数据矩阵本身很难理解第 4 列 1230 等数字的含义。

二、属性的类型

(一)连续属性

  在机器学习和数据挖掘领域,通常把属性粗略地分为连续型和离散型两大类,并在对它们的数据对象进行相似性度量时必须采用不同的度量方法。

  连续属性(Continuous attributes)通常在一个实数区间内取值,因此其取值个数理论上是不可数无限的。如表7-2中当月消费额,其属性的取值就是连续的,因为顾客的当月消费额理论上可以是 [ 0 , + ∞ ) [0,+\infty) [0,+) 区间的任意一个实数,因此称为连续属性或连续型属性。
  连续属性的特点是,可进行各种数学运算,不仅可以进行加、减、乘、除的基本运算,也可以计算均值、中位数、众数等刻画数据集 “中心” 的度量值,还可以计算描述数据集分散程度的方差等参数。

1、均值

  最常用,也是最有效的数据集 “中心” 度量方法。 设 a 1 , a 2 , ⋯   , a n a_1,a_2,\cdots,a_n a1,a2,,an 为某数值属性 A A A(比如考试成绩)的 n n n 个观测值,则它们的均值为 n n n 个数的算术平均值,记作 a ‾ = ∑ i = 1 n a i n = a 1 + a 2 + ⋯ + a n n (7-2) \overline{a}=\frac{\sum\limits_{i=1}^na_i}{n}=\frac{a_1+a_2+\cdots+a_n}{n}\tag{7-2} a=ni=1nai=na1+a2++an(7-2)

例 7-3 假设有11个学生的百分制考试成绩按递增排序为:55, 60, 70, 75, 75, 75, 80, 80, 80, 90, 95,则按照公式(7-2)得其均值为 835 / 11 = 75.91 835/11=75.91 835/11=75.91

  在有些应用中,可以给每个 a i a_i ai 赋予一个非负的权重 ω i ( i = 1 , 2 , ⋯   , n ) \omega_i(i=1,2,\cdots,n) ωi(i=1,2,,n),它们刻画了 a i a_i ai 在数据集中的重要性。属性 A 加权算术平均值,也称加权均值计算方法。 a ‾ = ∑ i = 1 n ω i a i ∑ i = 1 n ω i = ω 1 a 1 + ω 2 a 2 + ⋯ + ω n a n ω 1 + ω 2 + ⋯ + ω n (7-3) \overline{a}=\frac{\sum\limits_{i=1}^n\omega_ia_i}{\sum\limits_{i=1}^n\omega_i}=\frac{\omega_1a_1+\omega_2a_2+\cdots+\omega_na_n}{\omega_1+\omega_2+\cdots+\omega_n}\tag{7-3} a=i=1nωii=1nωiai=ω1+ω2++ωnω1a1+ω2a2++ωnan(7-3)

例 7-4 设某村有10户人家,其中一户做企业年收入1001万,其余9家靠务农年收入1万元,则该村平均每户年收入为 ( 9 + 1001 ) / 10 = 101 (9+1001)/10=101 (9+1001)/10=101 万。

  此例说明,均值对数据集中的极端数据(离群点)非常敏感,为了抵消少数极端数据的影响,通常使用 “截头尾均值”(trimmed mean)方法,即将数据集中极少数最大和最小的数据删除后再计算均值。

  例如,将该村每户年收入按照非减方式排序为1, 1, 1, 1, 1, 1, 1, 1, 1, 1001,删除左端一个最小值1和右端大一个最大值1001,再对剩下的8个数据计算均值为1万。对于数据量很大的数据集,通常可考虑去掉高端和低端2%左右的数据,但要避免在两端截去太多(如20%以上)的数据,以防止丢失有价值的信息。

2、中位数

  是有序数据集的中间值,它是把数据较高的一半与较低的一半分开的值。其方法是先把 n n n 个数据按大小顺序排列,
① 如果 n n n 为奇数,则取处在最中间位置的那个数据作为这个数据集的中位数(median),也简称中数。
② 如果 n n n 为偶数,则将最中间两个数的平均值作为该数据集的中位数。

例 7-5 对11个学生的考试成绩11个学生的百分制考试成绩按递增排序为:55,60,70,75,75,75,80,80,80,90,95,则它们的中位数为75,其平均值为75.91。对10户农家的年收入,因为 n = 10 n=10 n=10 是偶数,将排在第5和第6位的两个年收入的均值作为中位数,其值为1,而该数据集的均值为101,两者差别很大。

  中位数对数据集中部分数据的剧烈变化不敏感。对于倾斜(非对称)的数据集,中位数是一个比平均值更好的,刻画数据集中心的度量。

3、众数

  众数(mode)是另一种数据集中心的度量值,是集合中出现最频繁的那个数据值。
① 一个数据集有可能存在好几个数据,其出现的频率都是最高的,即一个数据集有可能出现多个众数。
② 通常将具有一个、两个、三个众数的数据集合分别称为单峰的(unimodal)、双峰的(bimodal)和三峰的(trimodal)。
  一般来说,具有两个或更多众数的数据集称为多峰的(muhimodal)数据集。但如果数据集中任何两个数都不相等,即每个数据值仅出现一次,则该集合没有众数。

例 7-6 对于例 7-3中11个学生的考试成绩数据集有两个众数,分别是75和80,而对例 7-4农户收入数据集的众数为1。因此,众数1万更真实地反映了该村 “广大农户” 年收入的实际情况,比户均101万的年收入更靠谱。

4、方差与标准差

  方差与标准差都是描述数据集分散程度的参数。方差或标准差的值约小,意味数据集中的每个数据越靠近其均值,方差或标准差的值大,表示数据集分散在离均值两端较大的区间之中。

  设 a 1 , a 2 , ⋯   , a n a_1,a_2,\cdots,a_n a1,a2,,an 为某数值属性 A 的 n n n 个观测值,则它们的方差(variance)记作
σ 2 = 1 n ∑ i = 1 n ( a i − a ‾ ) 2 (7-4) \sigma^2=\frac{1}{n}\sum_{i=1}^n(a_i-\overline{a})^2\tag{7-4} σ2=n1i=1n(aia)2(7-4) 其中 a ‾ \overline{a} a a 1 , a 2 , ⋯   , a n a_1,a_2,\cdots,a_n a1,a2,,an 的均值,而它们的标准差(standard deviation)是方差 σ 2 \sigma^2 σ2 的平方根 σ \sigma σ

(二)离散属性

  如果属性不是连续的,则它就是离散的。离散属性(Discrete attributes)是指该属性可以取有限或可数无限个不同的值,其取值可用字母或自然数表示,也可用单词或短语表示。

  在表7-2中的性别属性可取 {男,女} 2个值之一,婚姻状况可以取 {未婚,已婚,离异} 中3个值的任何一个,学位可取 {博士,硕士,学士,其它} 的4个值之一。即顾客id、姓名、性别、婚姻状况和学位等5个属性都是离散的,也称为离散型属性或离散属性。

  离散属性的共同特点是,其值可以进行 = = = ≠ \neq = 的比较运算。比如,性别属性的值 “男” ≠ \neq =“女”。有的离散属性的值可以按照 < < < ≤ \leq 进行大小或高低排序。比如学位属性的值,可以按照学位从低到高排序为:其它 < < <学士 < < <硕士 < < <博士。

(三)分类属性

  分类属性(categorical attributes)是一种特殊的离散属性,即离散属性的一个细分类型。分类属性的取值是一些符号或事物的名称,每个值代表某种类别、编码或状态,并且这些值之间不存在大小或顺序关系。

  在有些文献中也称为标称属性(nominal attribute),而在计算机科学中,分类属性的取值也被看作是枚举的(enumeration)。

  例如,在表7-2的所有属性中,婚姻状况就是一个分类属性,它可以取单身、已婚、离异和丧偶等4个值之一。在实际生活中,还有很多分类属性的例子。比如,描述人的职业属性,其取值可以为教师、医生、程序员、工人等等。分类属性可以数字或字母代码表示,如婚姻状况等,可以指定代码1表示单身、2表示已婚、3表示离异、4表示丧偶。但分类属性的代码数字并没有数学上的四则运算意义,即对其进行加、减、乘、除或求平均值等运算是没有实际意义。

(四)二元属性

  二元属性(binary attributes)是分类属性的一种特殊情况,即这种属性只取两种可能的值或只能处于两个状态之一,如1或0,其中1表示该状态出现,而0表示不出现。

  属性的取值也可以用 y 或 n 来表示。因此,二元属性又常称为布尔属性,且两种状态分别用t和f来表示。比如,性别属性就是一个二元属性,因此,可以指定代码0表示女,1表示男。

(五)序数属性

  序数属性(ordinal attributes)也是离散属性的一种,其特殊性表现在,它所有可能的取值之间可以进行排序(ranking),虽然任意两个相继值之间的差值是未知的。

(六)数值属性

  数值属性(numeric attributes)是一种定量属性,也看作是一种连续属性。它的取值是可以度量的,一般用整数或实数值表示。数值属性可以是区间标度或比率标度属性。

1、区间标度属性

  区间标度(interval-scaled)属性用相等的单位尺度度量。区间属性的值是有序的,可以为 正、0或负。区间标度值可以比较大小,定量评估任意值之间的差值。

  例如,描述室外温度的属性是区间标度的。对过去5天的温度值从小到大进行排序 1 0 ∘ C , 1 2 ∘ C , 1 3 ∘ C , 1 5 ∘ C , 1 9 ∘ C 10^\circ C, 12^\circ C, 13^\circ C, 15^\circ C, 19^\circ C 10C,12C,13C,15C,19C。还可以量化不同值之间的差值,比如,温度 1 9 ∘ C 19^\circ C 19C 1 2 ∘ C 12^\circ C 12C 高出 7 ∘ C 7^\circ C 7C。摄氏温度没有真正的零点,即 0 ∘ C 0^\circ C 0C 不表示 “没有温度”,也不能说一个温度值 2 0 ∘ C 20^\circ C 20C 是另一个温度 5 ∘ C 5^\circ C 5C 的4倍。

2、比率标度属性

  比率标度(ratio-scaled)属性是具有固有零点的数值属性,它弥补了区间标度无固定0点的不足,故可有一个值是另一个的倍数(或比率)。

  例如,开氏温标( K K K)与摄氏和华氏温度不同,它具有绝对零点( 0 ∘ K = − 273.1 5 ∘ C 0^\circ K=-273.15^\circ C 0K=273.15C),其物理学意义是,构成物质的粒子在 0 ∘ K 0^\circ K 0K 时具有零动能。因此,我们说温度值 2 0 ∘ K 20^\circ K 20K 5 ∘ K 5^\circ K 5K 的4倍是有意义的。

  许多文献中常常将 “连续属性” 与 “数值属性” 互换地使用。但在有些数据挖掘任务中,我们还是应该注意它们的一些细微差别,避免在中午气温 2 0 ∘ C 20^\circ C 20C 与凌晨气温 5 ∘ C 5^\circ C 5C 比较的时后,用 “早上气温是凌晨气温的4倍” 这种比率来描述。

三、相似度与相异度

  两个数据对象之间的相似度(similarity)是两个对象相似性程度的一个度量值,取值区间通常为 [ 0 , 1 ] [0,1] [0,1],0表示两者不相似,1表示两者相同。

  设数据集 S = { X 1 , X 2 , … X n } S=\{X_1 ,X_2, …X_n\} S={X1,X2,Xn} X i , X j ∈ S X_i, X_j\in S Xi,XjS,并用 s ( X i , X j ) s(X_i,X_j) s(Xi,Xj) 表示数据点之间的相似度,则它具有如下性质:
(1)非负有界性: 0 ≤ s ( X i , X j ) ≤ 1 0\leq s(X_i,X_j)\leq1 0s(Xi,Xj)1,仅当 X i = X j X_i=X_j Xi=Xj 时, s ( X i , X j ) = 1 s(X_i,X_j)=1 s(Xi,Xj)=1
(2)对称性:对于任意 X i , X j X_i,X_j Xi,Xj 之间 s ( X i , X j ) = s ( X j , X i ) s(X_i,X_j)=s(X_j,X_i) s(Xi,Xj)=s(Xj,Xi)

  因此,可以定义 S S S 的相似度矩阵(similarity matrix)为
S i m ( S ) = ( 1 s ( X 2 , X 1 ) 1 s ( X 3 , X 1 ) s ( X 3 , X 2 ) 1 ⋮ ⋮ ⋮ ⋮ s ( X n , X 1 ) s ( X n , X 2 ) ⋯ s ( X n , X n − 1 ) 1 ) (7-5) Sim(S)= \left( \begin{matrix} 1 \\ s(X_2,X_1) & 1 \\ s(X_3,X_1) & s(X_3,X_2) & 1 \\ \vdots & \vdots & \vdots & \vdots \\ s(X_n,X_1) & s(X_n,X_2) & \cdots & s(X_n,X_{n-1}) & 1 \end{matrix} \right)\tag{7-5} Sim(S)= 1s(X2,X1)s(X3,X1)s(Xn,X1)1s(X3,X2)s(Xn,X2)1s(Xn,Xn1)1 (7-5)

说明有些文献也引进了不在 [ 0 , 1 ] [0,1] [0,1] 区间内取值的相似度函数 s ( X , Y ) s(X,Y) s(X,Y),即 s ( X , Y ) s(X,Y) s(X,Y) 的值越大越,则 X X X Y Y Y 越相似,反之 X X X Y Y Y 越不相似。最简单的方法,就是当 d ( X , Y ) ≠ 0 d(X,Y)\neq0 d(X,Y)=0 时,令 s ( X , Y ) = 1 / d ( X , Y ) s(X,Y)=1/d(X,Y) s(X,Y)=1/d(X,Y)

  同理,若记 d ( X i , X j ) d(X_i,X_j) d(Xi,Xj) 表示它们之间的相异度,则可以定义 S S S 的相异度矩阵(dissimilarity matrix)为
D ( S ) = ( 0 d ( X 2 , X 1 ) 0 d ( X 3 , X 1 ) d ( X 3 , X 2 ) 0 ⋮ ⋮ ⋮ ⋮ d ( X n , X 1 ) d ( X n , X 2 ) ⋯ d ( X n , X n − 1 ) 0 ) (7-6) D(S)= \left( \begin{matrix} 0 \\ d(X_2,X_1) & 0 \\ d(X_3,X_1) & d(X_3,X_2) & 0 \\ \vdots & \vdots & \vdots & \vdots \\ d(X_n,X_1) & d(X_n,X_2) & \cdots & d(X_n,X_{n-1}) & 0 \end{matrix} \right)\tag{7-6} D(S)= 0d(X2,X1)d(X3,X1)d(Xn,X1)0d(X3,X2)d(Xn,X2)0d(Xn,Xn1)0 (7-6)

  因此,要得到数据集 S S S 的相似度矩阵 S i m ( S ) Sim(S) Sim(S) 或相异度矩阵 D ( S ) D(S) D(S),其关键是相似度 s ( X i , X j ) s(X_i,X_j) s(Xi,Xj) 或相异度 d ( X i , X j ) d(X_i,X_j) d(Xi,Xj) 的计算方法。但相似度或相异度的计算通常与数据集的属性类型有关,且不同的数据类型有不同的计算方法。比如,当 S S S 的所有属性都为数值型时, X i X_i Xi X j X_j Xj 之间的距离 d ( X i , X j ) d(X_i,X_j) d(Xi,Xj) 就是一种常用的相异度函数。许多文献中甚至将距离作为相异度的同义词使用,因此,在没有特别说明的情况下,公式 (7-3) 中的 d ( X i , X j ) d(X_i,X_j) d(Xi,Xj) 就是它们之间的某种距离。

(一)数值属性的距离

  距离作为空间中任意两点 X i X_i Xi X j X_j Xj 之间相距远近的一种测度,应该满足如下三个数学性质。
(1)非负性: d ( X i , X j ) ≥ 0 d(X_i, X_j)\geq0 d(Xi,Xj)0,即距离是一个非负的实数, d ( X i , X j ) = 0 d(X_i, X_j)=0 d(Xi,Xj)=0 当且仅当 X i = X j X_i=X_j Xi=Xj
(2)对称性: d ( X i , X j ) = d ( X j , X i ) d(X_i, X_j)=d(X_j, X_i) d(Xi,Xj)=d(Xj,Xi),即距离关于数据对象 X i , X j X_i, X_j Xi,Xj 是一个对称函数。
(3)三角不等式: d ( X i , X j ) ≤ d ( X i , X k ) + d ( X k , X j ) d(X_i, X_j)\leq d(X_i, X_k)+d(X_k, X_j) d(Xi,Xj)d(Xi,Xk)+d(Xk,Xj),即从对象 X i X_i Xi 到对象 X j X_j Xj 的直接距离不会大于途经任何其它对象 X k X_k Xk 的距离之和。

1、明可夫斯基(Minkowski)距离
d ( X i , X j ) = [ ∑ k = 1 d ∣ x i k − x j k ∣ p ] 1 p (7-7) d(X_i,X_j)=\left[\sum_{k=1}^d|x_{ik}-x_{jk}|^p\right]^{\frac{1}{p}}\tag{7-7} d(Xi,Xj)=[k=1dxikxjkp]p1(7-7)

(1)若 p = 1 p=1 p=1,则得绝对值距离公式,也称曼哈坦(Manhattan)距离:
d ( X i , X j ) = ∑ k = 1 d ∣ x i k − x j k ∣ (7-8) d(X_i,X_j)=\sum_{k=1}^d|x_{ik}-x_{jk}|\tag{7-8} d(Xi,Xj)=k=1dxikxjk(7-8)

(2)若 p = 2 p=2 p=2,则得欧几里得(Euclidean)距离,也简称为欧氏距离:
d ( X i , X j ) = [ ∑ k = 1 d ∣ x i k − x j k ∣ 2 ] 1 2 (7-9) d(X_i,X_j)=\left[\sum_{k=1}^d|x_{ik}-x_{jk}|^2\right]^{\frac{1}{2}}\tag{7-9} d(Xi,Xj)=[k=1dxikxjk2]21(7-9)

(3)如果让公式(7-7)中的 r → ∞ r\rightarrow\infty r,称切比雪夫(Chebyshev)距离:
d ( X i , X j ) = m a x 1 ≤ k ≤ n ∣ x i k − x j k ∣ (7-10) d(X_i,X_j)=\mathop{max}\limits_{1\leq k\leq n}|x_{ik}-x_{jk}|\tag{7-10} d(Xi,Xj)=1knmaxxikxjk(7-10)

2、二次型距离

  设 A A A n n n 阶非负定矩阵,则向量 X i X_i Xi X j X_j Xj 的二次型距离定义为
d ( X i , X j ) = ( ( X i − X j ) A ( X i − X j ) T ) 1 2 d(\mathbf{X_i},\mathbf{X_j})=((\mathbf{X_i}-\mathbf{X_j})\mathbf{A}(\mathbf{X_i}-\mathbf{X_j})^T)^\frac{1}{2} d(Xi,Xj)=((XiXj)A(XiXj)T)21

(1)当 A = I \mathbf{A}=\mathbf{I} A=I(单位矩阵)时,二次型距离蜕变成欧氏距离(公式7-9)。

(2)若 A \mathbf{A} A 为对角矩阵,即 A \mathbf{A} A 的对角线上元素为( a 11 , a 22 , ⋯   , a n n a_{11}, a_{22},\cdots, a_{nn} a11,a22,,ann),其余元素全为 0,则二次型距离特化成加权欧氏距离。
d ( X i , X j ) = [ ∑ k = 1 d a k k ∣ x i k − x j k ∣ 2 ] 1 2 (7-11) d(\mathbf{X_i},\mathbf{X_j})=\left[\sum_{k=1}^da_{kk}|x_{ik}-x_{jk}|^2\right]^{\frac{1}{2}}\tag{7-11} d(Xi,Xj)=[k=1dakkxikxjk2]21(7-11)

(3)若 A = Ω − 1 \mathbf{A}=\Omega^{-1} A=Ω1,则二次型距离蜕变成马氏(Mahalanobis)距离。
d ( X i , X j ) = ( ( X i − X j ) Ω − 1 ( X i − X j ) T ) 1 2 (7-12) d(\mathbf{X_i},\mathbf{X_j})=((\mathbf{X_i}-\mathbf{X_j})\Omega^{-1}(\mathbf{X_i}-\mathbf{X_j})^T)^\frac{1}{2}\tag{7-12} d(Xi,Xj)=((XiXj)Ω1(XiXj)T)21(7-12)

其中 Ω \Omega Ω 为数据集 S = { X 1 , X 2 , ⋯   , X n } S=\{X_1,X_2 ,\cdots,X_n\} S={X1,X2,,Xn} 的协方差矩阵,
Ω = 1 n ∑ i = 1 n ( X i − X ‾ ) T ( X i − X ‾ ) \Omega=\frac{1}{n}\sum_{i=1}^n(\mathbf{X_i}-\overline{\mathbf{X}})^T(\mathbf{X_i}-\overline{\mathbf{X}}) Ω=n1i=1n(XiX)T(XiX) X ‾ = 1 n ∑ i = 1 n X i \overline{\mathbf{X}}=\frac{1}{n}\sum_{i=1}^n\mathbf{X_i} X=n1i=1nXi

3、MP马氏距离

  马氏距离需计算协方差矩阵 Ω \Omega Ω 的逆矩阵,其复杂性较高 O ( n 3 ) O(n^3) O(n3),MP马氏距离公式用广义逆矩阵 Ω + \Omega^+ Ω+ 构造,不需要计算逆矩阵 S − 1 \mathbf{S^{-1}} S1

定义 7-1 对于任意矩阵 A \mathbf{A} A,必存在唯一的矩阵 B \mathbf{B} B,它与 A T \mathbf{A}^T AT 的阶数相同且满足如下4个方程:

(1) A B A = A \mathbf{ABA}=\mathbf{A} ABA=A; (2) B A B = B \mathbf{BAB}=\mathbf{B} BAB=B; (3) ( A B ) T = A B (\mathbf{AB})^T=\mathbf{AB} (AB)T=AB; (4) ( B A ) T = B A \mathbf{(BA)}^T=\mathbf{BA} (BA)T=BA

称矩阵 B \mathbf{B} B A \mathbf{A} A 的 Moore-Penrose 广义逆矩阵并记作 A + \mathbf{A}^+ A+,简称为 A \mathbf{A} A 的 MP 广义逆。

定理 7-2 ( A + \mathbf{A}^+ A+的构造) 若 A \mathbf{A} A m ∗ n m*n mn 矩阵且其奇异值分解形式为 A = U M V T \mathbf{A}=\mathbf{UMV}^T A=UMVT,则 A + = V T U T \mathbf{A}^+=\mathbf{VTU}^T A+=VTUT,其中 M = d i a g ( a 1 , a 2 , ⋯   , a r ) M=diag(a_1,a_2,\cdots,a_r) M=diag(a1,a2,,ar) a i > 0 a_i>0 ai>0 r r r 是矩阵 A \mathbf{A} A 的秩, U \mathbf{U} U V \mathbf{V} V 为正交阵,而矩阵 T \mathbf{T} T M \mathbf{M} M 构造而得:若 M ( i , j ) ≠ 0 M(i,j)≠0 M(i,j)=0,则 T ( i , j ) = 1 / M ( i , j ) T(i,j)=1/M(i,j) T(i,j)=1/M(i,j);若 M ( i , j ) = 0 M(i,j)=0 M(i,j)=0,则 T ( i , j ) = 0 T(i,j)=0 T(i,j)=0

  由此可以得到关于数据集 S = X 1 , X 2 , ⋯   , X m S={X_1,X_2,\cdots,X_m} S=X1,X2,,Xm 的 MP 马氏距离公式
d m p ( X i , X j ) = [ ( X i − X j ) T Ω + ( X i − X j ) ] 1 2 (7-13) d_{mp}(X_i,X_j)=\left[( X_i-X_j)^T\Omega^+( X_i-X_j)\right]^\frac{1}{2}\tag{7-13} dmp(Xi,Xj)=[(XiXj)TΩ+(XiXj)]21(7-13)

其中 X i , X j ∈ S X_i,X_j \in S Xi,XjS Ω \Omega Ω 为数据集 S S S 的协方差阵。

(二)分类属性的相似度

1、二元属性的相似度

在这里插入图片描述

表7-3 有11个二元属性的数据集S

其中1表示 “出现”、“是” 等,0表示 “未出现”、“否” 等。对 X i X_i Xi X j X_j Xj 的分量 x i k x_{ik} xik x j k x_{jk} xjk ( k = 1 , 2 , ⋯   , n ) (k=1,2,\cdots,n) (k=1,2,,n) 的取值情况进行比较,获得分量的4种不同取值对比的统计参数:
(1) f 11 f_{11} f11 X i X_i Xi X j X_j Xj 中分量满足 x i k = 1 x_{ik}=1 xik=1 x j k = 1 x_{jk}=1 xjk=1 的属性个数 (1-1相同);
(2) f 10 f_{10} f10 X i X_i Xi X j X_j Xj 中分量满足 x i k = 1 x_{ik}=1 xik=1 x j k = 0 x_{jk}=0 xjk=0 的属性个数 (1-0相异);
(3) f 01 f_{01} f01 X i X_i Xi X j X_j Xj 中分量满足 x i k = 0 x_{ik}=0 xik=0 x j k = 1 x_{jk}=1 xjk=1 的属性个数 (0-1相异);
(4) f 00 f_{00} f00 X i X_i Xi X j X_j Xj 中分量满足 x i k = 0 x_{ik}=0 xik=0 x j k = 0 x_{jk}=0 xjk=0 的属性个数 (0-0相同)。

显然 f 11 + f 10 + f 01 + f 00 = d f_{11}+f_{10}+f_{01}+f_{00}=d f11+f10+f01+f00=d,因此 X i X_i Xi X j X_j Xj 之间的相似度可以有下几种定义。

(1)简单匹配系数(simple match coefficient,smc)相似度
s m c ( X i , X j ) = f 11 + f 00 f 11 + f 10 + f 01 + f 00 = f 11 + f 00 d (7-14) s_{mc}(X_i,X_j)=\frac{f_{11}+f_{00}}{f_{11}+f_{10}+f_{01}+f_{00}}=\frac{f_{11}+f_{00}}{d}\tag{7-14} smc(Xi,Xj)=f11+f10+f01+f00f11+f00=df11+f00(7-14)也称作对称的二元相似度。

(2)Jaccard系数相似度
s j c ( X i , X j ) = f 11 f 11 + f 10 + f 01 = f 11 d − f 00 (7-15) s_{jc}(X_i,X_j)=\frac{f_{11}}{f_{11}+f_{10}+f_{01}}=\frac{f_{11}}{d-f_{00}}\tag{7-15} sjc(Xi,Xj)=f11+f10+f01f11=df00f11(7-15)也称为非对称的二元相似度。

(3)Rao系数相似度
s r c ( X i , X j ) = f 11 f 11 + f 10 + f 01 + f 00 = f 11 d (7-16) s_{rc}(X_i,X_j)=\frac{f_{11}}{f_{11}+f_{10}+f_{01}+f_{00}}=\frac{f_{11}}{d}\tag{7-16} src(Xi,Xj)=f11+f10+f01+f00f11=df11(7-16)是另一种非对称的二元相似度。

与相似度类似,还可以定义对称二元属性数据集的相异度计算公式:
d m c ( X i , X j ) = f 10 + f 01 f 11 + f 10 + f 01 + f 00 = f 10 + f 01 d (7-17) d_{mc}(X_i,X_j)=\frac{f_{10}+f_{01}}{f_{11}+f_{10}+f_{01}+f_{00}}=\frac{f_{10}+f_{01}}{d}\tag{7-17} dmc(Xi,Xj)=f11+f10+f01+f00f10+f01=df10+f01(7-17)以及非对称二元属性数据集的相异度公式:
d j c ( X i , X j ) = f 10 + f 01 f 11 + f 10 + f 01 = f 10 + f 01 d − f 00 (7-18) d_{jc}(X_i,X_j)=\frac{f_{10}+f_{01}}{f_{11}+f_{10}+f_{01}}=\frac{f_{10}+f_{01}}{d-f_{00}}\tag{7-18} djc(Xi,Xj)=f11+f10+f01f10+f01=df00f10+f01(7-18)显然, s m c ( X i , X j ) + d m c ( X i , X j ) = 1 , s j c ( X i , X j ) + d j c ( X i , X j ) = 1 s_{mc}(X_i,X_j)+d_{mc}(X_i,X_j)=1, s_{jc}(X_i,X_j)+d_{jc}(X_i,X_j)=1 smc(Xi,Xj)+dmc(Xi,Xj)=1,sjc(Xi,Xj)+djc(Xi,Xj)=1

2、分类属性的相似度

如果 S S S 的属性都是分类属性(婚姻状况),则 X i X_i Xi X j X_j Xj 的相似度可定义为
s ( X i , X j ) = p / d (7-19) s(X_i,X_j)=p/d\tag{7-19} s(Xi,Xj)=p/d(7-19) 其中 p p p X i X_i Xi X j X_j Xj 的对应属性值 x i k = x j k x_{ik}=x_{jk} xik=xjk(相等值)的个数, d d d 是向量的维数。

在这里插入图片描述

表7-4 有5个分类属性的数据集

3、序数属性的相似度

  序数属性的值之间具有实际意义的顺序或排位,但相继值之间的差值是未知的,可用mk表示第k个属性的可能取值有状态。

  假设某校用考试成绩、奖学金和月消费3个属性来描写学生在校的信息(表7-5)。其中第1个属性考试成绩取 m 1 = 5 m_1=5 m1=5 个状态,其顺序排位为优秀>良好>中等>及格>不及格;第2个属性奖学金取 m 2 = 3 m_2=3 m2=3 个状态,其顺序排位为甲等>乙等>丙等;第3个属性月消费取 m 3 = 3 m_3=3 m3=3 个状态,其顺序排位为高>中>低。

在这里插入图片描述

表7-5 有3个序数属性的数据集

  序数属性的数据对象之间相异度计算的基本思想是将其转换为数值型属性,并用距离函数来计算,主要分为三个步骤:

(1)将第 k k k 个属性的域映射为一个整数的排位集合,比如考试成绩的域为 {优秀, 良好, 中等, 及格, 不及格} ,其整数排位集合为 {5, 4, 3, 2, 1};然后将每个数据对象Xi对应分量的取值 x i k x_{ik} xik 用其对应排位数代替并仍记为 x i k x_{ik} xik ,比如,表7-5中 X 2 X_2 X2 的考试成绩属性值 x 21 x_{21} x21 为 “良好”,则用4代替,这样得到整数表示的数据对象仍记为 X i X_i Xi

在这里插入图片描述

表7-6 用其排位的整数代替的序数属性数据集

(2)将整数表示的数据对象 X i X_i Xi 的每个分量映射到 [ 0 , 1 ] [0, 1] [0,1] 实数区间之上,其映射方法为
z i k = ( x i k − 1 ) / ( m k − 1 ) (7-20) z_{ik}=(x_{ik}-1)/(m_{k}-1)\tag{7-20} zik=(xik1)/(mk1)(7-20) 其中 m k m_k mk 是第 k k k 个属性排位整数的最大值,再以 z i k z_{ik} zik 代替 X i X_i Xi 中的 x i k x_{ik} xik,就得到数值型的数据对象,并仍然记作 X i X_i Xi

  比如, X 2 X_2 X2 的考试成绩排位整数是4,映射为 z 21 = ( 4 − 1 ) / ( 5 − 1 ) = 0.75 z_{21}=(4-1)/(5-1)=0.75 z21=(41)/(51)=0.75 X 2 X_2 X2 的奖学金排位整数是2,映射为 z 13 = ( 2 − 1 ) / ( 3 − 1 ) = 0.50 z_{13}=(2-1)/(3-1)=0.50 z13=(21)/(31)=0.50

在这里插入图片描述

表7-7 用其实数代替排位数的数据集

(3)根据实际情况选择一种距离公式,计算任意两个数值型数据对象 X i X_i Xi X j X_j Xj 的相异度。
比如,选用欧几里得距离函数计算任意两点之间的相异度
d ( X 1 , X 2 ) = ( 1 − 0.75 ) 2 + ( 1 − 0.5 ) 2 + ( 0.5 − 1 ) 2 = 0.0625 + 0.25 + 0.25 = 0.5625 = 0.75 d(X_1,X_2)=\sqrt{(1-0.75)^2+(1-0.5)^2+(0.5-1)^2}=\sqrt{0.0625+0.25+0.25}=\sqrt{0.5625}=0.75 d(X1,X2)=(10.75)2+(10.5)2+(0.51)2 =0.0625+0.25+0.25 =0.5625 =0.75 同理可得: d ( X 1 , X 3 ) = 1.22 d(X_1,X_3)=1.22 d(X1,X3)=1.22 d ( X 2 , X 3 ) = 0.56 d(X_2,X_3)=0.56 d(X2,X3)=0.56

  从计算结果可知 d ( X 2 , X 3 ) d(X_2,X_3) d(X2,X3) 的值是最小的,而且从表7-5也可以看出,三个数据对象之间的确是 X 2 X_2 X2 X 3 X_3 X3 的差异度最小。

(三)余弦相似度

  对数值型或属性值用数字表示的数据集中任意两个数据对象 X i = ( x i 1 , x i 2 , ⋯   , x i n ) X_i=(x_{i1},x_{i2},\cdots,x_{in}) Xi=(xi1,xi2,,xin) X j = ( x j 1 , x j 2 , ⋯   , x j n ) X_j=(x_{j1},x_{j2},\cdots,x_{jn}) Xj=(xj1,xj2,,xjn),其余弦 (cosine) 相似度定义为:
s c o s ( X i , X j ) = X i ⋅ X j ∥ X i ∥ ⋅ ∥ X j ∥ (7-21) s_{cos}(X_i,X_j)=\frac{X_i\cdot X_j}{\lVert{X_i}\rVert\cdot\lVert{X_j}\rVert}\tag{7-21} scos(Xi,Xj)=XiXjXiXj(7-21) 其中 X i ⋅ X j X_i\cdot X_j XiXj 表示两个向量的内积, ∥ X i ∥ \lVert{X_i}\rVert Xi 表示向量 X i X_i Xi 的欧几里得范数,即 X i X_i Xi 到坐标原点的距离,也就是向量 X i X_i Xi 的长度。

如果令 θ \theta θ 是向量 X i X_i Xi X j X_j Xj 之间夹角,则 s c o s ( X i , X j ) = c o s θ s_{cos}(X_i,X_j)=cos\theta scos(Xi,Xj)=cosθ
(1)当 s c o s ( X i , X j ) = 0 s_{cos}(X_i,X_j)=0 scos(Xi,Xj)=0,即向量 X i X_i Xi X j X_j Xj 9 0 ∘ 90^\circ 90 夹角,也就是说它们是相互垂直的,亦即它们是不相似的。
(2)当 s c o s ( X i , X j ) = 1 s_{cos}(X_i,X_j)=1 scos(Xi,Xj)=1,即向量 X i X_i Xi X j X_j Xj 的方向是一致的,它们的方向是完全相似的。

  余弦相似度常常用来评价文档间的相似性。每一个文档通常用一个词频向量(term-frequency vector)来表示,每个属性为文档中可能出现的特定词或短语,属性取值为该词或短语在文档中出现的频度。

在这里插入图片描述

表7-8 三个文档的词频向量集

(四)混合属性的相异度

  若数据集 S = { X 1 , X 2 , ⋯   , X m } S=\{X_1 ,X_2, \cdots,X_m\} S={X1,X2,,Xm} 的所有属性都是数值属性(连续属性),则称 S S S 为数值属性数据集。若 S S S 的所有属性都是离散属性,则称 S S S 为离散属性集。若 S S S 既有数值属性,又有离散属性时,称 S S S 为混合属性数据集。

  对于混合属性数据集 S S S,通常有两种思路来描述其数据对象之间的相似度或相异度。将每种类型的属性分成一组,然后使用每种属性类型的相似度或相异度定义,分别对 S S S 进行数据挖掘分析(如聚类分析)。如果这些分析能够得到兼容的结果,则将其融合形成 S S S 的挖掘结果,但在实际应用中常常不能产生兼容的结果。

  一种更可取的方法是将所有属性类型集成处理,保证在数据挖掘时只做一次分析。基本思想是,假设 S S S d d d 个属性,根据第 k k k 属性的类型,计算 S S S 关于第 k k k 属性的相异度矩阵 D ( k ) ( S ) ( k = 1 , 2 , ⋯   , d ) D^{(k)}(S) (k=1,2,\cdots,d) D(k)(S)(k=1,2,,d),最后将其集成为 S S S 的相异度矩阵 D ( S ) D(S) D(S),如公式 (7-22) 就是 S S S 相异度的一种集成方法。 d ( X i , X j ) = ∑ k = 1 d δ ( k ) ( X i , X j ) × d ( k ) ( X i , X j ) ∑ k = 1 n δ ( k ) ( X i , X j ) (7-22) d(X_i,X_j)=\frac{\sum\limits_{k=1}^d\delta^{(k)}(X_i,X_j)×d^{(k)}(X_i,X_j)}{\sum\limits_{k=1}^n\delta^{(k)}(X_i,X_j)}\tag{7-22} d(Xi,Xj)=k=1nδ(k)(Xi,Xj)k=1dδ(k)(Xi,Xj)×d(k)(Xi,Xj)(7-22) 其中相异度 d ( k ) ( X i , X j ) d^{(k)}(X_i,X_j) d(k)(Xi,Xj) 的取值都在 [ 0 , 1 ] [0, 1] [0,1] 内,因属性类型有3种计算方法。

(1)当第 k k k 属性是分类或二元属性时,比较 X i X_i Xi X j X_j Xj 在第 k k k 属性的取值,
如果 x i k = x j k x_{ik}=x_{jk} xik=xjk,则 d ( k ) ( X i , X j ) = 0 d^{(k)}(X_i,X_j)=0 d(k)(Xi,Xj)=0,否则 d ( k ) ( X i , X j ) = 1 d^{(k)}(X_i,X_j)=1 d(k)(Xi,Xj)=1

(2)当第 k k k 属性是数值属性时,先求出 S S S k k k 属性所有非缺失值的最大值 m a x k max_k maxk 和最小值 m i n k min_k mink,则有 d ( k ) ( X i , X j ) = ∣ x i k − x j k ∣ m a x k − m i n k (7-23) d^{(k)}(X_i,X_j)=\frac{\vert x_{ik}-x_{jk}\vert}{max_k-min_k}\tag{7-23} d(k)(Xi,Xj)=maxkminkxikxjk(7-23)

(3)当第 k k k 属性是序数属性时,先将 X i X_i Xi 的第 k k k 属性值转换为 [ 0 , 1 ] [0,1] [0,1] 区间的实数 z i k = ( x i k − 1 ) / ( m k − 1 ) z_{ik}=(x_{ik}-1)/(m_k-1) zik=(xik1)/(mk1),其 m k m_k mk S S S k k k 属性排位数的最大值, x i k x_{ik} xik X i X_i Xi 的第 k k k 属性值对应的排位数。用 z i k z_{ik} zik z j k z_{jk} zjk 代替第(2)种方法公式中的 x i k x_{ik} xik x j k x_{jk} xjk 即可。

通常,以上公式中的指示符 δ ( k ) ( X i , X j ) = 1 \delta^{(k)}(X_i,X_j)=1 δ(k)(Xi,Xj)=1,仅在以下情况取值为0。
(1) X i X_i Xi X j X_j Xj 的第 k k k 属性分量 x i k x_{ik} xik x j k x_{jk} xjk 都取空值或有一个取空值;
(2)当第 k k k 属性为非对称二元属性且 x i k = x j k = 0 x_{ik}=x_{jk}=0 xik=xjk=0 时;

因此, δ ( k ) ( X i , X j ) = 0 \delta^{(k)}(X_i,X_j)=0 δ(k)(Xi,Xj)=0 表示对象 X i X_i Xi 和对象 X j X_j Xj 在第 k k k 属性上的相异度集成到 S S S 的相异度矩阵 D ( S ) D(S) D(S) 中没有意义。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/531775.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CentOS 镜像下载

CentOS 镜像下载&#xff1a;https://www.centos.org/download/ 选择合适的架构&#xff0c;博主选择x86_64&#xff0c;表示CentOS7 64位系统x86架构&#xff0c;如下&#xff1a; 或者直接访问以下网站下载 清华大学开源软件镜像站&#xff1a;https://mirrors.tuna.tsin…

国产低代码工具,轻松搞定数据迁移

在日常的业务系统升级或者数据维护过程中&#xff0c;数据迁移是各个企业用户不得不面临的问题&#xff0c;尤其是数据迁移过程中要保障数据完整性、统一性和及时性&#xff0c;同时也需要注意源数据中的数据质量问题&#xff0c;比如缺失、无效、错误等问题&#xff0c;需要在…

安全大脑与盲人摸象

21世纪是数字科技和数字经济爆发的时代&#xff0c;互联网正从网状结构向类脑模型进行进化&#xff0c;出现了结构和覆盖范围庞大&#xff0c;能够适应不同技术环境、经济场景&#xff0c;跨地域、跨行业的类脑复杂巨型系统。如腾讯、Facebook等社交网络具备的神经网络特征&…

实验1 eNSP安装与使用

实验1 eNSP安装与使用 一、 原理描述二、 实验目的三、 实验内容四、 实验步骤1.下载并安装eNSP2.eNSP软件界面3.搭建并运行网络拓扑4. Wireshark 捕获分组并分析 一、 原理描述 eNSP&#xff08;Enterprise Network Simulation Platform&#xff09;是由华为提供的免费网络模…

JDK1.8的安装及环境变量的配置

下载路径&#xff1a; Java Downloads | Oracle 选择对应的操作系统进行下载 1&#xff1a;在D盘新建一个名称为Java的文件夹 [如果你下载的不是这个版本的请自行修改文件夹名称&#xff0c;如版本jdk1.8.0则文件夹名为jdk1.8.0] 2:复制红色框中的名称并在刚刚新建Java文件夹…

【攻防世界】wife_wife

原型链污染 源码 app.post(/register, (req, res) > {let user JSON.parse(req.body)if (!user.username || !user.password) {return res.json({ msg: empty username or password, err: true })}if (users.filter(u > u.username user.username).length) {return …

新平台上线需要注意哪些?

最近有很多被黑客攻击的老板问我前期平台上线安全防护方面需要注意哪些&#xff1f;下面就给大家讲一下。1、如果前期不打算上高防产品&#xff0c;数据一定要做好备份&#xff0c;否则一旦数据被篡改或者被加密&#xff0c;恢复都是比较困难的&#xff0c;甚至都没有办法恢复。…

【简单讲解下WebView的使用与后退键处理】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

使用QtChart绘制一个折线图

记录一下&#xff0c;以备以后查阅 效果图&#xff1a; #include "mychart.h" #include <QLineSeries> #include <QChart> #include <QChartView> #include <QBoxLayout> #include <QtMath>QT_CHARTS_USE_NAMESPACE MyChart::MyChart…

嵌入式:第一天(c语言入门)

目录 一、C语言是什么 二、基础语法 2.1 第一个C语言程序 2.2 注释 2.3 数据类型 数据类型介绍&#xff1a; 变量&#xff1a; 变量的语法&#xff1a; 使用特点&#xff1a; 命名规则和规范&#xff1a; 命令规范&#xff1a; char类型&#xff1a; Boolean类型&…

2024-04-08

作业要求&#xff1a; 1> 思维导图 2>使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否…

vue项目中使用html2canvas 下载当前页面(动态页面宽度、高度)

老规矩先上效果图: 需求1、 只要上图红色区域的内容下载&#xff0c;就需要计算红色区域的内容的动态宽度、高度。 需求2、当前页面可视区域的内容下载&#xff0c;上传按钮下面的所有内容。 一、 安装依赖 &#xff1a;安装html2canvas插件 npm isntall html2canvas 或者…

[渗透利器]在线渗透测试工具箱?测评

前言 hxd更新完了在线工具箱&#xff0c;受邀写一下使用体验以及测评 使用体验 这个工具箱设计的比较轻便&#xff0c;以往用过的工具箱大多都是以离线打包的方式发布&#xff0c;该工具箱&#xff0c;作者自己掏钱自己买服务器&#xff0c;自己买带宽&#xff0c;先生大义。…

[闲聊统计]之参数估计是什么?(下)

我们在前面说了一下参数估计中的点估计&#xff0c;接下来&#xff0c;我们来讲一下区间估计。 区间估计——在点估计的基础上&#xff0c;给出总体参数估计的一个估计区间&#xff0c;该区间由样本统计量加减估计误差而得到。 置信水平——如果将构造置信区间的步骤重复多次&a…

三:synchronized 关键字

目录 1、共享带来的问题2、synchronized 用法3、类加载器对 Class 锁的影响4、synchronized 实现原理4.1、同步方法、同步代码块4.2、对象内存布局4.3、Monitor 对象定义 5、synchronized 与原子性6、synchronized 与可见性7、synchronized 与有序性8、synchronized 锁升级8.1、…

UDS(ISO14229) ———— 0x10(DiagnosticSessionControl)

前言 在UDS协议中,我们首先接触到的是诊断和通信管理功能单元(Diagnostic and communication management functional unit)模块。在这个模块里面,DiagnosticSessionControl是我们第一个需要掌握的内容。 按照ISO 14229上面的划分,我们可以将诊断会话模式分为两大类; 一类…

Pytest精通指南(02)对比Unittest的差异

文章目录 前言用例编写规则不同用例前置与后置条件不同断言功能不同测试报告失败重跑机制参数化用例分类执行Unittest 前后置示例Pytest 前后置示例总结 前言 在Python中&#xff0c;unittest和pytest是两个主流的测试框架&#xff1b; 它们都旨在支持自动化测试、使用断言验证…

通信分类3G,4G,5G,通信专用名词

Generation: 2G: GSM全名为&#xff1a;Global System for Mobile Communications&#xff0c;中文为全球移动通信系统&#xff0c;俗称"全球通"&#xff0c;是一种起源于欧洲的移动通信技术标准&#xff0c;是第二代移动通信技术 3G&#xff1a;WCDMA 4G&#xff1a…

C++奇迹之旅:探索类对象模型内存的存储猜想

文章目录 &#x1f4dd;前言&#x1f320; 类的实例化&#x1f309;类对象模型 &#x1f320; 如何计算类对象的大小&#x1f309;类对象的存储方式猜想&#x1f320;猜想一&#xff1a;对象中包含类的各个成员&#x1f309;猜想二&#xff1a;代码只保存一份&#xff0c;在对象…

特征融合篇 | RTDETR引入基于内容引导的特征融合方法 | IEEE TIP 2024

本改进已集成到 RT-DETR-Magic 框架。 摘要—单幅图像去雾是一个具有挑战性的不适定问题,它从观察到的雾化图像中估计潜在的无雾图像。一些现有的基于深度学习的方法致力于通过增加卷积的深度或宽度来改善模型性能。卷积神经网络(CNN)结构的学习能力仍然未被充分探索。本文提…