机器学习(五)降维技术---主成分分析、因子分析

机器学习(五)降维技术---主成分分析、因子分析

降维(处理线性问题为主)

一提到降维这个词,大家可能就会觉得非常高大上,到底是什么东西呢?降维通俗来讲就是把原先多个指标的计算降维为少量几个经过优化指标的计算,可能大家还是不理解,举个例子就是本来拿来参加建模的特征有100个,但是太多了,经过一些特征的一些组合变换衍生出一些新的特征变量,取对结果影响比较大的一些新的特征变量,现在问题就可以从一开始100个特征变为现在的3到5个特征。需要注意的是新衍生的特征变量一般是100个原始特征向量的线性组合。一般做了降维技术自然地多重共线性也就消除了,不需要额外做多重共线性内容

降维一般对于回归、分类、聚类都适用,那一般降维都有什么方法呢?

  • 主成分分析
  • 因子分析

降维技术和之前的Lasso和岭回归有什么区别呢?

Lasso和岭回归:没有对变量进行线性组合出新变量,直接舍弃一些原始变量建模

降维技术:不舍弃原始变量,直接对原始特征线性组合出新特征变量

主成分分析

下面我们下先来学习一下主成分分析,简单来说就是n个特征向量空间里面找一些方向,使得这些方向上数据的方差最大

简单来说就是先求方差矩阵之后转换为相关系数矩阵,再求特征值、特征向量、看累计贡献率选出3-5个维度、查看这些维度的载荷(由原始特征如何线性组成)、用这些新的维度去建模,假如模型拟合很好,用业务解释这几个维度(主成分分析是从数学角度去解决问题,业务解释性不强)

这些方向就是新的特征向量(也就是新的维度),之后用n个特征向量空间解释,转化为n个特征的线性组合

为什么这样考虑呢?

假如某一个特征全是0,另一个特征取值多种多样,显然特征全是0的对我们模型意义不大,其数据差异小,如何衡量数据差异呢?用方差。

主成分分析的几何图,如图F1的方差(截距明显比F2长)比F2的大,所以F2可以考虑舍弃,其中F1和F2是新衍生出的维度

主成分分析的数学模型(理论性强,可以不了解)

我们先来了解一些名词

(累计贡献率,应为之前我们不是说,这里的解释变异就是指主成分的累计贡献率)

(载荷也要了解一下,就是新的维度由原始维度如何线性组合而成,系数的确定)

注意

主成分方向对数据值的范围高度敏感,如果特征值不同维度应该先对特征标准化处理,让各特征具有相同的重要性。

可能说了这么久,大家还是云里雾里的,我们就举一个分类小例子吧(还可以去应用回归、聚类问题)

通过R语言主成分分析,画框框那里表示累计贡献率,衍生出4个维度,发现两个维度已经可以了

看一下这些衍生变量的载荷(看下面Z1和这张图结合看就懂了)

之后从业务上解释这些新的变量

因子分析

简单来说就是样本求出协方差矩阵,之后求出因子,作因子旋转,业务解释

咋一眼看好像和主成分分析没什么区别,但是还是有区别的(所以一般因子分析优于主成分分析,结合业务来的)

数学模型

性质(画框框那个乘以正交矩阵,后面因子旋转主要是用了这条性质)

红色箭头指的意思是

解决模型方法有

  • 主成分法

  • 主因子法

  • 极大似然法

方差最大的正交旋转

我们看一下小例子

算出m=2的两个新特征维度,为什么取二呢?这就可能结合了业务场景,给出2

但是得出这组数据不好解释,做正交旋转

-------------------------------------------------------------------

但是我们有时候不能太相信主成分分析(就相当于不是万能的),比如

y    x1    x2

3     3     200

5     5     -1000

7     7    -399

1     1     400

我们看着组数据的话,显然y=x1就已经是我们想要的了,但是假如使用主成分分析的话,主成分分析完全不考虑因变量,其发现x1这个特征方差小,可能衍生出一个新特征z1=0.99x1+0.1x2,这样和我们想要的y=x1完全不搭了

应用

猜你喜欢

转载自blog.csdn.net/LuYi_WeiLin/article/details/85880844