前文回顾
上一篇文章地址:链接
1.特征向量和特征值
在机器学习中,特征向量和特征值是用于描述数据集中的特征或变量之间关系的重要概念。它们在降维技术(如主成分分析)中起到关键作用,特征向量是一个非零向量,其方向在线性变换下保持不变,只发生缩放。它表示了数据变换后的新坐标系下的方向。特征值是与特征向量相关联的数值,表示特征向量在对应的线性变换下的缩放因子。在降维中,我们可以使用特征向量和特征值来找到数据集中最显著的特征,并将数据投影到这些特征上以减少维度。以下是计算特征向量和特征值的常用步骤为
假设我们有一个 m × n m \times n m×n的数据矩阵 X X X,其中每行代表一个样本,每列代表一个特征。
- 计算数据矩阵 X X X的协方差矩阵 C C C:
C = 1 m − 1 ( X − X ˉ ) T ( X − X ˉ ) C = \frac{1}{m - 1}(X - \bar{X})^T (X - \bar{X}) C=m−11(X−Xˉ)T(X−Xˉ)
其中 X ˉ \bar{X} Xˉ是每个特征的均值 - 对协方差矩阵 C C C进行特征值分解:
C = V Λ V T C = V\Lambda V^T C=VΛVT
其中 V V V是特征向量组成的矩阵, Λ \Lambda Λ是由特征值组成的对角矩阵 - 对特征值进行排序,从最大到最小,同时对应调整特征向量的顺序
- 选择前 k k k个最大的特征值及其对应的特征向量,这些特征向量构成了降维后的新坐标系
- 将数据 X X X投影到新的坐标系中,得到降维后的数据矩阵 Y = X V reduced Y = XV_{\text{reduced}} Y=XVreduced
其中 V reduced V_{\text{reduced}} Vreduced是由前 k k k个特征向量组成的子矩阵
通过上述步骤,我们可以获得降维后的数据矩阵 Y Y Y,其列数减少为 k k k。这样可以减少冗余信息并保留数据的最重要方面,同时也能够加速机器学习算法的训练和提高模型的性能
2.矩阵与模型
在 linear regression 中,我们可以使用矩阵表示模型,其中特征矩阵(输入)和目标向量(输出)之间的线性关系可以用以下公式表示:
y = X w \mathbf{y} = \mathbf{Xw} y=Xw
其中, y \mathbf{y} y 是一个大小为 m × 1 m \times 1 m×1 的列向量,表示目标变量; X \mathbf{X} X 是一个大小为 m × ( n + 1 ) m \times (n + 1) m×(n+1) 的特征矩阵,每行代表一个样本,包含 n n n 个特征以及一列全为 1 的常数列,用于表示截距项; w \mathbf{w} w 是一个大小为 ( n + 1 ) × 1 (n + 1) \times 1 (n+1)×1 的列向量,表示模型的参数(权重和截距),在 linear regression 中,我们的目标是找到最优的参数向量 w \mathbf{w} w,使得预测值 y ^ \hat{\mathbf{y}} y^ 与实际值 y \mathbf{y} y 之间的差异最小化。这通常通过最小化损失函数来实现。损失函数通常使用平方误差(Sum of Squared Errors, SSE)来度量预测误差的总和。它可以用以下公式表示:
L ( w ) = 1 2 m ( y − X w ) T ( y − X w ) L(\mathbf{w}) = \frac{1}{2m} (\mathbf{y} - \mathbf{Xw})^T (\mathbf{y} - \mathbf{Xw}) L(w)=2m1(y−Xw)T(y−Xw)
其中, L ( w ) L(\mathbf{w}) L(w) 表示损失函数, 1 2 m \frac{1}{2m} 2m1 是一个常数因子,用于简化计算。
通过最小化损失函数,即求解以下优化问题:
min w L ( w ) \min_{\mathbf{w}} L(\mathbf{w}) wminL(w)
我们可以使用 linear algebra 中的方法来找到最优的参数解。通过对损失函数关于参数向量 w \mathbf{w} w 的梯度进行求解和令其为零,可以得到闭式解或者使用优化算法(如梯度下降)进行迭代求解,通过 linear algebra 的技术和求解方法,在 linear regression 中,我们可以更有效地拟合模型并找到最优的参数,以最小化预测误差
3.内积和外积
内积(点积):给定两个向量 a \boldsymbol{a} a和 b \boldsymbol{b} b,它们的内积表示为 a ⋅ b \boldsymbol{a} \cdot \boldsymbol{b} a⋅b。内积的计算方法是将两个向量对应位置上的元素相乘,并将乘积相加得到一个标量。内积满足交换律和分配律,并且可以通过向量的长度和夹角的余弦来计算:
a ⋅ b = ∣ a ∣ ∣ b ∣ cos ( θ ) \boldsymbol{a} \cdot \boldsymbol{b} = \vert\boldsymbol{a}\vert \vert\boldsymbol{b}\vert \cos(\theta) a⋅b=∣a∣∣b∣cos(θ)
其中 ∣ a ∣ \vert\boldsymbol{a}\vert ∣a∣和 ∣ b ∣ \vert\boldsymbol{b}\vert ∣b∣分别代表向量 a \boldsymbol{a} a和 b \boldsymbol{b} b的长度, θ \theta θ是两个向量之间的夹角外积(叉积):给定两个三维向量 a \boldsymbol{a} a和 b \boldsymbol{b} b,它们的外积表示为 a × b \boldsymbol{a} \times \boldsymbol{b} a×b。外积的结果是一个新的向量,其方向垂直于原始向量所在的平面,并且大小等于该平面的面积与两个向量长度的乘积。外积只适用于三维向量
在机器学习中,内积具有多种常见应用:
- 相似度度量:内积可以用来计算向量之间的相似度或相关性。例如,在推荐系统中,可以使用内积来计算用户之间的相似度,以便为用户提供个性化的推荐
- 特征之间的交互:在特征工程中,我们可以使用内积来表示两个特征之间的交互作用。例如,在多项式回归中,可以将高阶特征表示为原始特征的内积
- 核方法:在支持向量机(SVM)等机器学习算法中,内积扮演着关键角色。通过选择合适的核函数,我们可以基于内积来进行非线性分类,将数据映射到更高维的特征空间中
总而言之,内积在机器学习中具有广泛的应用,包括相似度度量、特征交互和核方法等。它是许多机器学习算法中重要的数学概念和操作
4.向量的范数
向量的范数是一种用于衡量向量大小或长度的函数。在机器学习中,我们通常使用L1范数和L2范数进行正则化来控制模型的复杂度。L1范数(也称为曼哈顿范数或稀疏范数)定义为向量中各个元素的绝对值之和。对于一个n维向量 x = ( x 1 , x 2 , … , x n ) \boldsymbol{x} = (x_1, x_2, \ldots, x_n) x=(x1,x2,…,xn),它的L1范数表示为:
∥ x ∥ 1 = ∣ x 1 ∣ + ∣ x 2 ∣ + … + ∣ x n ∣ \|\boldsymbol{x}\|_1 = |x_1| + |x_2| + \ldots + |x_n| ∥x∥1=∣x1∣+∣x2∣+…+∣xn∣
在正则化中,L1范数可以促使模型参数稀疏化,即将一些参数的值设为零。因此,通过在损失函数中加上L1范数的惩罚项,可以倾向于产生更稀疏的模型,有助于特征选择和降低过拟合的风险。L2范数(也称为欧几里得范数或岭回归的惩罚项)定义为向量各个元素的平方和的平方根。对于一个n维向量 x = ( x 1 , x 2 , … , x n ) \boldsymbol{x} = (x_1, x_2, \ldots, x_n) x=(x1,x2,…,xn),它的L2范数表示为:
∥ x ∥ 2 = x 1 2 + x 2 2 + … + x n 2 \|\boldsymbol{x}\|_2 = \sqrt{x_1^2 + x_2^2 + \ldots + x_n^2} ∥x∥2=x12+x22+…+xn2
在正则化中,L2范数可以控制模型的权重衰减,使得参数的值趋向于较小的值。通过在损失函数中加上L2范数的惩罚项,可以防止模型过拟合,并促使模型参数分布在更集中的区域,有助于提高模型的泛化能力。总结起来,L1范数在正则化中促使模型参数稀疏化,而L2范数则控制参数的大小并减少参数之间的相关性,从而帮助避免过拟合。根据问题的不同,选择适当的范数进行正则化可以改善模型的性能和泛化能力
5.正交矩阵
正交矩阵是一个方阵,其列向量(或行向量)彼此正交(垂直),并且每个向量的长度为1。换句话说,正交矩阵的转置矩阵等于其逆矩阵。给定一个 n × n n \times n n×n的矩阵 Q \boldsymbol{Q} Q,如果满足以下条件,则称其为正交矩阵(其中 I \boldsymbol{I} I是单位矩阵):
Q T Q = Q Q T = I \boldsymbol{Q}^T \boldsymbol{Q} = \boldsymbol{Q} \boldsymbol{Q}^T = \boldsymbol{I} QTQ=QQT=I
在旋转和变换中,正交矩阵发挥重要作用。由于正交矩阵的特性,它们保持向量的长度不变,并保持向量之间的夹角不变。具体来说,正交矩阵可以在几何上表示旋转、镜像和反射等线性变换。
应用:
- 旋转变换:正交矩阵可以通过乘以一个向量来实现旋转操作。通过将向量乘以旋转矩阵,我们可以将向量绕原点旋转到新的位置,而不改变向量的长度- 坐标系变换:正交矩阵可以用于坐标系之间的变换。通过乘以一个正交矩阵,我们可以将一个坐标系中的向量映射到另一个坐标系中
- 正交化:正交矩阵还可以用于将一组线性无关的向量正交化。通过对向量组成的矩阵进行正交分解,我们可以得到一个正交矩阵和一个对角矩阵,从而使得向量之间相互正交
- 傅里叶变换:在信号处理中,正交矩阵(如傅里叶矩阵)用于将信号从时域转换到频域。傅里叶变换是一种正交变换,它将信号分解为一组正交基函数
总结来说,正交矩阵在旋转和变换中具有重要的应用。它们保持向量的长度和夹角不变,可用于实现旋转、镜像、反射等几何操作,并且在信号处理中起着关键作用