拉格朗日乘数法
一般情况下,最优化问题会碰到三种情况:一是无约束条件,这是最简单的情况,解决方法通常是函数对变量求导,令求导函数等于0的点可能是极值点。将结果带回原函数进行验证即可;二是等式约束条件,解决方法是消元法(即通过等式约束条件消去一个变量,得到其他变量关于该变量的表达式代入目标函数,转化为无约束的极值求解问题)或拉格朗日乘数法;三是不等式约束条件,常用的方法是KKT条件(拉格朗日乘数法的一种泛化)。
- 引入拉格朗日乘数,构造拉格朗日函数;
- 令偏微分为零,解方程组,得到可能极值点;
- 根据实际问题的性质,在可能极值点处求极值
协方差
协方差:只表示线性相关的方向(变化趋势),取值正无穷到负无穷。也就是说,协方差为正值,说明一个变量变大另一个变量也变大;取负值说明一个变量变大另一个变量变小,取0说明两个变量没有相关关系。
皮尔逊相关系数:相关系数是标准化后的协方差,两个变量之间的皮尔逊相关系数定义为两个变量的协方差除以它们标准差的乘积;标准系数不仅表示线性相关的方向,还表示线性相关的程度,取值[-1,1]。也就是说,相关系数为正值,说明一个变量变大另一个变量也变大;取负值说明一个变量变大另一个变量变小,取0说明两个变量没有相关关系。同时,相关系数的绝对值越接近1,线性关系越显著。
协方差矩阵:对多维随机变量,我们往往需要计算各维度两两之间的协方差,这样各协方差组成了一个的矩阵,即为协方差矩阵;协方差矩阵是个对称矩阵,对角线上的元素是各维度上随机变量的方差,协方差矩阵被定义为(与求和符号相同)。
特征值与特征向量
特征值与特征向量:对于一个给定的方阵,它的特征向量经过这个线性变换后,得到的新向量仍然与原来的保持在同一条直线上,但其长度或方向也许會改变,即;为纯量,即特征向量的长度在该线性变换下缩放的比例,即特征向量对应的特征值。
特征值分解:特征值分解可以得到特征值与特征向量。即,是矩阵的特征向量组成的矩阵;是对角阵,每一个对角线上的元素就是一个特征值,里面的特征值是由大到小排列的。特征值分解也有局限,比如变换的矩阵必须是方阵(参考奇异值分解)。
根据目标值(target)的参与与否,分为有监督降维和无监督降维;根据高维空间与低维空间的关系(降维过程是否可以通过一个线性变换表示),分为线性降维和非线性降维。
线性降维
PCA
推导
- 当B为单位向量时,内积A和B的内积其实就是向量A在向量B的方向上的投影的长度。
- 最大化投影后方差
- 拉格朗日乘数法解决最值问题(限制条件:投影向量为单位向量)
- 由公式可知,方差的值只由决定,的值越大,方差越大,也就是说我们需要找到最大的特征值与对应的特征向量。
- (将一组N维向量降为K维,其目标是选择K个单位正交基,使得原始数据变换到这组基上后,各字段两两间协方差为0,而字段的方差则尽可能大(在正交的约束下,取最大的K个方差);等价于将协方差矩阵对角化:即除对角线外的其它元素化为0,并且在对角线上将元素按大小 从上到下排列)
计算步骤
- 中心化数据集
- 求协方差矩阵
- 求协方差矩阵的特征值和特征向量
- 将特征值由大到小排序,保留前k个特征值对应的特征向量
- 用特征向量构造投影矩阵
kernal PCA(非线性降维)
在PCA算法中,我们假设存在一个线性的超平面,可以让我们对数据进行投影。但有些时候数据不是线性可分的(不存在划分超平面),不能直接进行PCA降维。此时需要用到核函数的思想,先把数据集从n维映射到线性可分的高维N(>=n),再在高维空间中进行PCA降维
Linear Discriminant Analysis
与PCA区别
- 出发点:PCA主要是从特征的协方差角度,去找到比较好的投影方式,即选择样本点投影具有最大方差的方向;而LDA则更多的是考虑了分类标签信息,寻求投影后不同类别之间数据点距离更大化以及同一类别数据点距离最小化,即选择分类性能最好的方向。
- 学习模式:PCA属于无监督式(无参数),大多场景下只作为数据处理过程的一部分;LDA是一种有监督式学习方法
推导
- 定义目标函数:投影后类间距离最大,类内方差最小
- 定义类内散度矩阵和类间散度矩阵
计算步骤
- 对数据进行标准化处理
- 计算各类均值
- 计算类内散度矩阵和类间散度矩阵
- 计算矩阵,并对该矩阵进行特征分解,选取最大的k个特征值对应的特征向量组成
- 计算投影后的数据点
非线性降维
Autoencoder
其他非线性降维方法:等距离映射(Isomap),局部线性嵌入(LLE)
Reference