降维就是一种对高维度特征数据预处理方法。降维是将高维度的数据保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的目的。在实际的生产和应用中,降维在一定的信息损失范围内,可以为我们节省大量的时间和成本。降维也成为应用非常广泛的数据预处理方法。
降维具有如下一些优点:
1) 使得数据集更易使用。
2) 降低算法的计算开销。
3) 去除噪声。
4) 使得结果容易理解。
降维的算法有很多,比如奇异值分解(SVD)、主成分分析(PCA)、因子分析(FA)、独立成分分析(ICA)。下面我们将主要介绍一下scikit-learn中主成分分析算法的应用。

主成分分析(PCA)

  1. PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。其中,第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,第三个轴是与第1,2个轴正交的平面中方差最大的。依次类推,可以得到n个这样的坐标轴。通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面k个含有绝大部分方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。

  2. API: sklearn.decomposition.PCA

  3. 相关语法及参数
    PCA(n_components= ,copy= ,whiten= ,.....)
    
    主要参数:
  • n_components:
    意义:PCA算法中所要保留的主成分个数n,也即保留下来的特征个数n
    类型:int 或者 string,缺省时默认为None,所有成分被保留。
    赋值为int,比如n_components=1,将把原始数据降到一个维度。
    赋值为string,比如n_components=’mle’,将自动选取特征个数n,使得满足所要求的方差百分比。
    一般指定保留程度为90%-95%
  • copy:
    类型:bool,True或者False,缺省时默认为True。
    意义:表示是否在运行算法时,将原始训练数据复制一份。若为True,则运行PCA算法后,原始训练数据的值不会有任何改变,因为是在原始数据的副本上进行运算;若为False,则运行PCA算法后,原始训练数据的 值会改,因为是在原始数据上进行降维计算。
  • whiten:
    类型:bool,缺省时默认为False
    意义:使得每个特征具有相同的方差。
0条评论