机器学习算法学习---降维技术(一)

降维是对数据高维度特征的一种预处理方法。降维是将高维度的数据保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的目的。在实 际的生产和应用中,降维在一定的信息损失范围内,可以为我们节省大量的时间和成本。降维也成为了应用非常广泛的数据预处理方法。
除了方便显示外,对数据降维还有如下原因:

(1)使得数据集更易使用

(2)降低算法的计算开销

(3)去除噪声

(4)使得结果容易理解

常用的降维技术:

(1)主成分分析(PCA)

在PCA中,数据从原来的坐标系转换到新的坐标系,由数据本身决定。转换坐标系时,以方差最大的方向作为坐标轴方向,因为数据的最大方差给出了数据的最重要的信息。第一个新坐标轴选择的是原始数据中方差最大的方法,第二个新坐标轴选择的是与第一个新坐标轴正交且方差次大的方向。重复该过程,重复次数为原始数据的特征维数。大部分方差都包含在最前面的几个新坐标轴中,因此,可以忽略余下的坐标轴,即对数据进行了降维处理。
(2)因子分析(FA)

在因子分析中,假设在观察数据的生成中有一些观察不到的隐变量;假设观察数据是这些隐变量和某些噪声的线性组合;那么隐变量的数据可能比观察数据的数目少,也就是说通过找到隐变量就可以实现数据的降维。

(3)独立成分分析(ICA)

ICA假设数据是从N个数据源生成的,这一点和因子分析有些类似。假设数据为多个数据源的混合观察结果,这些数据源之间在统计上是相互独立的,而在PCA中只假设数据是不相关的。同因子分析一样,如果数据源的数目少于观察数据的数目,则可以实现降维过程。

本篇以下内容主要介绍PCA。

优点:降低数据的复杂性,识别最重要的多个特征。

缺点:不一定需要,且可能损失有用信息。

适用数据:数值型

1、移动坐标轴

PCA对数据坐标进行旋转,旋转过程取决于数据本身。

第一条坐标轴旋转到覆盖数据的最大方差位置,数据的最大方差给出了数据的最重要的信息。

第二条坐标轴假设其与第一条正交,并将其旋转到覆盖数据次大差异性的坐标轴。

通过PCA进行降维处理,我们可以同时获得SVM和决策树的优点:一方面得到了和决策树一样简单的分类器,同时分类间隔和SVM一样好。

通过协方差矩阵及其特征值分析,可以求得主成分的值。

2、python实现PCA

将数据转换成前N个主成分的伪码大致如下:

去除平均值
计算协方差矩阵
计算协方差矩阵的特征值和特征向量
将特征值排序
保留前N个最大的特征值对应的特征向量
将数据转换到上面得到的N个特征向量构建的新空间中(实现了特征压缩)
具体代码如下:

https://www.cnblogs.com/zy230530/p/7074215.html 

特征值和特征向量的意义:

https://blog.csdn.net/weixin_38314865/article/details/84190175 

 

posted @ 2019-05-27 21:41  2048的渣渣  阅读(967)  评论(0编辑  收藏  举报