什么是维度?
- 对于数组或Series来说,维度是属性shape返回的结果,返回了几个数字,该数组或Series就是几维的;
- 对于一张表而言,数组中的每一张表都是一个特征矩阵,维度指的是样本的数量或特征的数量,一般均指特征的数量;
- 对于图像来说,维度就是图像中特征向量的个数;
eg.一条特征向量 一维
一条相互垂直特征向量 二维
三条相互垂直的特征向量 三维
…
(更高维肉眼看不到)
什么是“降维”?
降维就是降低特征矩阵中特征的数量(一般指列),并且还能保留原数据的大量有效信息。
降维的实质就是将数据从一个空间转化到另一个更简单的空间中。
为什么要“降维”?
-
让算法运算得更快,效果更好
-
数据可视化的需要
eg.我们如果能把一个维数大于3的特征矩阵的特征数量讲到3及以下的话,我们就可以画出一维,二维或者是三维图来直观清晰地展现出这些数据的特征,更高维是画不出来的。
PCA基本原理
- 降维的过程中,一部分数据被删除,意味着信息量的减少,同时模型可能会受影响。
- 高维数据中,有一些特征不携带信息量(比如说一列全为0)或者是携带的信息量很少,还有一些特征之间的有一些相关性甚至相关性很强,因此使用全部数据的话一会增加计算机的负担,使得计算机计算起来很慢,二是会重复利用一些信息,模型建立的过程中出现多重共线性的问题。
- 由方差过滤的内容得出:如果一个特征的方差很小,则意味着这个特征上很可能有大量取值都相同(比如90%都是1,只有10%是0,甚至100%是1),那这一个特征的取值对样本而言就没有区分度,这种特征就不带有有效信息。
- PCA中使用的信息衡量标准是:样本方差,一个特征的(样本)方差越大,说明其所携带信息量就越大。
注:(方差公式)
注:为什么要除以n-1,是为了样本方差S^2=()是总体方差D(x)的无偏估计。
sklearn中用于降维的类PCA
class sklearn.decomposition.PCA (n_components=None, copy=True, whiten=False, svd_solver=’auto’, tol=0.0,
iterated_power=’auto’, random_state=None)
参数解释
n_components
可以填入:
- 整数k,降维后保留的特征数量为k个;
- [0,1]