- 度量学习指距离度量学习,是通过特征变换得到特征子空间,通过使用度量学习,让相似的目标距离更近,不同的目标距离更远.
- 也就是说,度量学习需要得到目标的某些核心特征(特点)。比如区分两个人,2只眼睛1个鼻子-这是共性,柳叶弯眉樱桃口-这是特点。
- 度量学习分为两种,一种是基于监督学习,另外一种是基于非监督学习(主要指降维方法,即对于高维数据,在尽可能保留原始变量信息的基础上,降低变量维度)。
1. KNN
有监督学习
生成式模型
1.1 工作机制
给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息进行预测。
(分类中用投票法,回归中用平均法,还可以基于距离远近进行加权投票或平均。)
注意:KNN没有显示的训练过程,它是“懒惰学习”的代表,它在训练阶段只是把数据保存下来,训练时间开销为0,等收到测试样本后进行处理。
1.2 错误率上下界
KNN错误率的上下界在1-2倍贝叶斯决策方法的错误率范围内。
以最近邻分类器(K=1)在二分类问题为例:
令 c ∗ = a r g m a x c ∈ Y P ( c ∣ x ) c^*=argmax_{c \in \mathcal Y}P(c|x) c∗=argmaxc∈YP(c∣x)表示贝叶斯最优分类器的结果。P(c|x)表示预测x属于类标c的概率。给定测试样本x,若其最近邻样本为z,则1NN出错的概率为:
P ( e r r ) P(err) P(err) 出错的概率为x与z类标不同的概率
= 1 − ∑ c ∈ Y P ( c ∣ x ) P ( c ∣ z ) =1-\sum_{c \in \mathcal Y}P(c|x)P(c|z) =1−∑c∈YP(c∣x)P(c∣z) # 也就是1-x与z类标相同的概率
≈ 1 − ∑ c ∈ Y P 2 ( c ∣ x ) \approx 1-\sum_{c \in \mathcal Y}P^2(c|x) ≈1−∑c∈YP2(c∣x)
≤ 1 − P 2 ( c ∗ ∣ x ) \le1-P^2(c^*|x) ≤1−P2(c∗∣x) # 1减去那么多项自然小于1减去其中1项
= ( 1 + P ( c ∗ ∣ x ) ) ( 1 − P ( c ∗ ∣ x ) ) =(1+P(c^*|x))(1-P(c^*|x)) =(1+P(c∗∣x))(1−P(c∗∣x))
由 P ( c ∗ ∣ x ) < 1 , 1 + P ( c ∗ ∣ x ) > 1 P(c^*|x)<1,1+P(c^*|x)>1 P(c∗∣x)<1,1+P(c∗∣x)>1有
1 − P ( c ∗ ∣ x ) ≤ ( 1 + P ( c ∗ ∣ x ) ) ( 1 − P ( c ∗ ∣ x ) ) ≤ 2 ( 1 − P ( c ∗ ∣ x ) ) 1-P(c^*|x)\le(1+P(c^*|x))(1-P(c^*|x))\le2(1-P(c^*|x)) 1−P(c∗∣x)≤(1+P(c∗∣x))(1−P(c∗∣x))≤2(1−P(c∗∣x))
1.3 实现:kd树
knn的实现需要考虑如何快速搜索k个最近邻点。kd树是一种便于在k维空间中的数据进行快速检索的数据结构。利用kd树可以节省对大部分数据点的搜索,从而减少搜索的计算量。
Kd-树是K-dimension tree的缩写,是对数据点在k维空间中划分的一种数据结构,主要应用在高维数据索引(如:范围搜索和最近邻搜索)。本质上说,Kd-树就是一种平衡二叉树。
平衡二叉树:二叉树中每个节点的左、右子树的高度至多相差1
注意:这里的k与knn的k不同。
参考:基础-12:15分钟理解KD树 - 简书
https://www.jianshu.com/p/ffe52db3e12b
2. 主成分分析(PCA)
无监督学习
主成分分析通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。
2.0 数据预处理
均值为0,特征方差归一
2.1 模型表示
设投影矩阵为W,样本点 x i x_i xi在新空间超平面上的投影是 W T x i W^Tx_i WTxi。我们希望所有样本点的投影能够尽可能地分开,所以目标是使得投影后样本点的方差最大化。
由于这些样本点的每一维特征均值都为0,因此投影后的均值仍然是0。故方差为:
括号中的一项即为协方差矩阵Σ(详见引用处关于自协方差矩阵的介绍,这里是均值为0的情况)!由此可见,协方差矩阵Σ与投影的方向w无关,只与数据集中的样本有关,因此协方差矩阵完全决定了数据的分布及变化情况。
最后,模型表示如下:
max W t r ( W T X X T W ) \max_W\quad tr(W^TXX^TW)