专栏首页算法channel数据降维:特征值分解和奇异值分解的实战分析

数据降维:特征值分解和奇异值分解的实战分析

《实例》阐述算法,通俗易懂,助您对算法的理解达到一个新高度。包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,Kaggle 实战。期待您的到来!

01

回顾

这几天推送了关于机器学习数据预处理之降维算法,介绍了通过降维提取数据的主成分的背景,特征值分解法,奇异值分解法的相关原理。

现在我们再回顾下这些问题,首先,提取主成分的必要性,从数字信号的角度分析,主成分时方差较大,称为信号,而噪声是方差较小的;极限讲,如果100个样本点都汇集成一个点,也就是方差为0,那么不就相当于我们手上有1个点吗,因为其他99个对我们的最终的目标不会有任何作用了,相对的,我们更喜欢来一个与之散的比较开的点,这样会对我们的模型起到一个实质的作用。

不管是特征值分解法,还是奇异值分解法,需要理解以下基本知识点:

  1. 向量在某个正交基空间上的投影,等于点乘这个主轴;
  2. 通过一次正交变换,可以实现一次向量的旋转;
  3. 正交方阵能使一个正交基变换为另一个正交基

已经分析了如何利用特征值分解完成数据的降维和提取主成分(数据降维处理:PCA之特征值分解法例子解析),下面看下如何利用奇异值分解完成数据降维,要知道它可以实现两个方向的降维,而特征值分解是做不到的。然后总结下它们的实际应用。

02

SVD分解过程

我们的原始数据样本:

A = np.array([[2, 4], [1, 3],[0,0]])

A

array([[2, 4],

[1, 3],

[0, 0]])

#转化为我们想要的A,将特征定为 axis=0

A = A.T

A

array([[2, 1, 0],

[4, 3, 0]])

调用 Numpy中的奇异值分解API:

#奇异值分解

np.linalg.svd(A)

得到的结果为三个数组 U*Sigma*V转置

(array([[-0.40455358, -0.9145143 ],

[-0.9145143 , 0.40455358]]),

array([ 5.4649857 , 0.36596619]) ,

array([[-0.81741556, -0.57604844, 0. ],

[-0.57604844, 0.81741556, 0. ],

[ 0. , 0. , 1. ]]))

现在看下数据A是如何奇异值分解的:

#U矩阵是通过A.dot(A.T)的特征值求得的(按照特征值由大到小排序)

np.linalg.eig( A.dot(A.T) )

(array([ 0.13393125, 29.86606875]), array([[-0.9145143 , -0.40455358],

[ 0.40455358, -0.9145143 ]]))

#奇异值(特征值的开根号)

np.sqrt(29.86606875),np.sqrt(0.13393125)

#V的转置是通过A.T.dot(A)的特征值求得的(按照特征值由大到小排序)

np.linalg.eig(A.T.dot(A))

(array([ 29.86606875, 0.13393125, 0. ]),

array([[ 0.81741556, -0.57604844, 0. ],

[ 0.57604844, 0.81741556, 0. ],

[ 0. , 0. , 1. ]]))

03

SVD降维实例

对于SVD的奇异值也是按照从大到小排列,而且奇异值梯度很大。在昨天,我们介绍过:在很多情况下,前10%,甚至有的1%的奇异值的和就占了全部的奇异值之和的99%,这是什么意思呢,这就表示原矩阵可以被压缩为一个很小的矩阵,并且还能保证其主要成分信息不会丢失。

也就是说,我们也可以用最大的 k 个的奇异值和对应的左右奇异向量来近似描述原始矩阵数据,如下图表达的含义:

接下来,我们实际演练下这个过程,利用 numpy库随机生成一个5*9的二维数组(也可以称为矩阵吧)A:

array([[6, 4, 9, 4, 2, 7, 6, 2, 6],

[6, 3, 0, 5, 6, 2, 5, 4, 8],

[6, 0, 4, 2, 3, 5, 4, 9, 7],

[6, 1, 3, 6, 5, 1, 3, 7, 1],

[4, 1, 6, 4, 2, 4, 1, 3, 6]])

那么如何先进行特征降维呢? 比如降维成 5* r 列,只要降维后的 r列能近似表达原矩阵就行吧,已知奇异值分解的公式:

因此如果想要把A降维成特征r个,那么只需要上个近似等式两边同乘以 Vr*n ,如下:

因为Vr*n是正交矩阵,所以V的转置等于V的逆,所以,上式进一步化简为:

这样,近似等号的右侧就是一个m*r的矩阵,它是将A矩阵压缩后的近似矩阵,V就是中间的变换矩阵。

借助numpy的API,我们发现取取3个奇异值,就已经表达了84%的奇异值的和,所以取前3个奇异值,因此,求出 U * Singular等于如下:(取小数点后1位显示)

array([[-15.3, 6.3, -0.8],

[-13.2, -3.9, -4.9],

[-14.5, -1.4, 2.9],

[-11.2, -4.6, 2.5],

[-10.9, 2.6, 0.6]])

这就完成了对特征的压缩,将含有9个特征的数据,最后压缩为3个特征。那么如何来按照行对数据压缩呢,和上面的原理差不多,在奇异值分解的等式两侧乘以 U的转置,就可以推导出下式,等号右边不就是 r*n的按行压缩后的矩阵吗!

至此,SVD按照特征压缩,和数据样本压缩,两个方向的压缩方法和例子就说完了,接下来看看它的实际应用吧。

04

数据压缩的实际应用

例如sklearn的 iris 经典数据集中,iris的4个特征,被PCA后,只提取了其中2个特征,便表达了其中的主要方差,这是一个数据降维的典型demo 。

另外,PCA的特征值分解和奇异值分解在图像处理,压缩方面也有很广的应用,可以将图像的数据做奇异值分解,然后降维处理,例如下面的图片,经过奇异值分解法获得的主成分提取后压缩后的图像,可以看到基本保留了原来的图像主要信息。

简单总结下,重点介绍了奇异值分解法压缩矩阵的原理,和一个实际的例子,最后实战介绍了PCA的实际应用。前面介绍了决策树的原理和例子解析,明天,基于次,再介绍一种经典的机器学习集成算法,XGBoost,它可是中国的科学家发明的。

算法channel已推送的更多文章:

1 机器学习:不得不知的概念(1)

2 机器学习:不得不知的概念(2)

3 机器学习:不得不知的概念(3)

4 回归分析简介

5 最小二乘法:背后的假设和原理(前篇)

6 最小二乘法原理(后):梯度下降求权重参数

7 机器学习之线性回归:算法兑现为python代码

8 机器学习之线性回归:OLS 无偏估计及相关性python分析

9 机器学习线性回归:谈谈多重共线性问题及相关算法

10 机器学习:说说L1和L2正则化

11 机器学习逻辑回归:原理解析及代码实现

12 机器学习逻辑回归:算法兑现为python代码

13 机器学习:谈谈决策树

14 机器学习:对决策树剪枝

15 机器学习决策树:sklearn分类和回归

16 机器学习决策树:提炼出分类器算法

17 机器学习:说说贝叶斯分类

18 朴素贝叶斯分类器:例子解释

19 朴素贝叶斯分类:拉普拉斯修正

20 机器学习:单词拼写纠正器python实现

21 机器学习:半朴素贝叶斯分类器

22 机器学习期望最大算法:实例解析

23 机器学习高斯混合模型(前篇):聚类原理分析

24 机器学习高斯混合模型(中篇):聚类求解

25 机器学习高斯混合模型(后篇):GMM求解完整代码实现

26 高斯混合模型:不掉包实现多维数据聚类分析

27 高斯混合模型:GMM求解完整代码实现

28 数据降维处理:背景及基本概念

29 数据降维处理:PCA之特征值分解法例子解析

30 数据降维处理:PCA之奇异值分解(SVD)介绍

本文分享自微信公众号 - 算法channel(alg-channel)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-12-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 谷歌Launchpad Studio瞄准医疗领域,从早期公司吸取行业经验

    李杉 编译自 TechCrunch 量子位 出品 | 公众号 QbitAI 谷歌一直在对AI大举下注,并围绕AI培育开发工具和创业公司等在内的生态系统。 三个多...

    量子位
  • 掌握这些问题,成为 Facebook 机器学习工程师

    【新智元导读】彭博社最近推出了一些列大公司面试指南,其中包括Facebook、Uber和高盛等大公司。那么,如果想进入Facebook做一名机器学习工程师,需要...

    新智元
  • 今日头条李磊:用机器学习做自然语言理解,实现通用 AI 仍需解决三大难题(33PPT下载)

    1 新智元原创 【新智元导读】10月18日,在中国自动化学会与新智元联合主办的 2016世界人工智能大会上,今日头条科学家、头条实验室总监李磊博士受邀发表...

    新智元
  • 机器学习里,数学究竟多重要?

    【新智元导读】本文的主要目的是提供资源,给出有关机器学习所需的数学上面的建议。数学初学者无需沮丧,因为初学机器学习,并不需要先学好大量的数学知识才能开始。正如这...

    新智元
  • 【快报】富士通新技术让机器学习效率翻两倍 | 初创公司芯片,比英伟达最强 GPU 快十倍

    新智元 AI DAILY 1 富士通新技术:机器学习效率提高 2 倍 ? 富士通实验室今天宣布,提高GPU内存效率,以支持神经网络规模的增长,提高机器...

    新智元
  • “爸爸,什么是机器学习呀?”

    原作:Daniel Tunkelang 安妮 编译自 Quora 量子位 出品 | 公众号 QbitAI 爸爸,什么是机器学习呀? 难以回答!抓了抓开始脱发的脑...

    量子位
  • 人类太多余?且慢,先听AI科学家详解AlphaGo Zero的伟大与局限

    夏乙 李根 发自 凹非寺 量子位 报道 | 公众号 QbitAI “人类太多余了。” 面对无师自通碾压一切前辈的AlphaGo Zero,柯洁说出了这样一句话...

    量子位
  • iPhone相册会自动归类内衣照?这项机器学习功能让妹子们炸了

    夏乙 发自 凹非寺 量子位 出品 | 公众号 QbitAI 在iPhone自带的“照片”应用中搜“brassiere”,它就会把所有内衣照(如果你有)都给你汇总...

    量子位
  • 【重磅】谷歌开源 TensorFlow 图说生成模型,可真正理解图像

    【新智元导读】谷歌今天宣布开源图说生成系统 Show and Tell 最新版在 TensorFlow 上的模型。该系统采用编码器-解码器神经网络架构,分类准确...

    新智元
  • 论文 | 预测 API 从谷歌、亚马逊等大平台盗取机器学习算法

    2016年10月18日, 世界人工智能大会技术分论坛,特设“新智元智库院长圆桌会议”,重量级研究院院长 7 剑下天山,汇集了中国人工智能产学研三界最豪华院长阵容...

    新智元

扫码关注云+社区

领取腾讯云代金券