是的,排名大致告诉您有多少列向量(特征)是独立的。
不,您不能删除任意列。您可以尝试删除随机列并计算结果的排名——您会看到不同的数字。您只需要删除那些依赖的功能。
或者,假设您以只有最后 12 列依赖于前 12 列的方式生成数据。你还能删除任何 12 列吗?
但是,您可以做的是使用与等级相等的组件数执行 PCA。这不仅会减少您的空间尺寸,还会使您的特征去相关。这种转换的缺点是(可能)失去了可解释性,但这不是数学问题,如果你想保留它,你应该根据你的洞察力删除特征。
假设您的数据矩阵是形式(X;Y)在哪里X和Xn_rows × (n_cols - 12)分别是 form和的子矩阵n_rows × 12。这意味着,那X和Y是通过切出最后 12 列形成的子矩阵。如果你想找到 12 个线性组合X要得到Y,你实际上想要求解形式为的 12 个线性方程组
Xbi=Yi
在哪里Yi是i第 列Y. 现在将所有这些方程粘合在一起bi成矩阵B的形状(n_cols - 12) × 12。然后方程变为
XB=Y
请注意,X它不是正方形,因此不可逆。幸运的是,解决方案仍然存在,并由pseudoinversion给出:
B=(XTX)−1XY
注意:现在有足够深思熟虑的人可能会注意到,我提供上述公式的方式看起来我们可以将原始数据矩阵的任何列集合表示为其余列的线性组合。怎么会这样?这是否意味着任何一组列都是线性依赖于所有其他列的?这听起来很疯狂!
当然,还有一个重要的注意事项X这里。注意XTX那是倒置的。为了反转矩阵,它需要是满秩的。这意味着X必须具有完整的列排名,即排名等于列数。
另一个有趣的事情是当一些Yi实际上独立于X. 显然,公式没有地方可以打破,但是结果的含义是什么,我们得到了什么?在这种情况下,结果bi是正交投影的系数向量Yi到由列产生的空间上X. 从某种意义上说,它是最接近的线性组合X.