数据降维(Dimensionality reduction)

应用范围

  • 无监督学习
  • 图片压缩(需要的时候在还原回来)
  • 数据压缩
  • 数据可视化

数据压缩(Data Compression)

  • 将高维的数据转变为低维的数据, 这样我们存储数据的矩阵的列就减少了, 那么我们需要存储的数据就减少了

数据可视化

  • 数据可视化是非常重要的, 通过可视化数据可以发现数据的规律, 但是大多数时候我们到的数据是高维度的, 可视化很困难, 采用数据降维可以将数据降到二维进行数据可视化

加快机器学习算法的速度

  • 维度少了程序运行就快了

算法

PCA

注意点

  • 数据降维不是随意降维的, 我们要首先发现样本的规律, 如果样本在2D时都在一条之间上, 那么我们可以将数据都投影到这条直线上, 从而降到1D; 如果在3D中, 基本上在一个平面上, 我们可以将所有的数据都投影到这个平面上, 从而降到2D; 降维要找的直线或者平面我们要保证原始原始样本到新的直线或者平面的距离和最小, 从而保留尽可能多的信息
  • 使用PCA降维时需要对数据进行标准化

PCA降维步骤

  1. 数据标准化
  2. 计算协方差矩阵: \(\Sigma{1\over{m}}X^TX\), 其中X为样本, 在MATLAB中Sigma = 1 / m * X' * X
  3. 调用svd函数计算出协方差矩阵的特征向量: [U, S, V] = svd(Sigma), 其中U为特征矩阵, 其他返回的变量暂时用不到
  4. U是一个\(nxn\)的矩阵, \(n\)表示原始数据特征的数量, 选择K个作为我们新的特征
  5. 获取新的数据: Z = X * U(:, 1:K), Z就是一个\(mxk\)的新的样本

恢复数据

  1. X_recovered = Z * U(:, 1:K)', 通过这条语句得到的X_recovered = X * U(:, 1:K) * U(:, 1:K)', 我们恢复的数据并不是要原先的数据, 但是已经非常接近了, 只是原来的数据X乘以U与U的转置的乘积

数据降维(Dimensionality reduction)的更多相关文章

  1. 海量数据挖掘MMDS week4: 推荐系统之数据降维Dimensionality Reduction

    http://blog.csdn.net/pipisorry/article/details/49231919 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...

  2. Stanford机器学习笔记-10. 降维(Dimensionality Reduction)

    10. Dimensionality Reduction Content  10. Dimensionality Reduction 10.1 Motivation 10.1.1 Motivation ...

  3. [C9] 降维(Dimensionality Reduction)

    降维(Dimensionality Reduction) 动机一:数据压缩(Motivation I : Data Compression) 数据压缩允许我们压缩数据,从而使用较少的计算机内存或磁盘空 ...

  4. 机器学习(十)-------- 降维(Dimensionality Reduction)

    降维(Dimensionality Reduction) 降维的目的:1 数据压缩 这个是二维降一维 三维降二维就是落在一个平面上. 2 数据可视化 降维的算法只负责减少维数,新产生的特征的意义就必须 ...

  5. 机器学习课程-第8周-降维(Dimensionality Reduction)—主成分分析(PCA)

    1. 动机一:数据压缩 第二种类型的 无监督学习问题,称为 降维.有几个不同的的原因使你可能想要做降维.一是数据压缩,数据压缩不仅允许我们压缩数据,因而使用较少的计算机内存或磁盘空间,但它也让我们加快 ...

  6. 斯坦福第十四课:降维(Dimensionality Reduction)

    14.1  动机一:数据压缩 14.2  动机二:数据可视化 14.3  主成分分析问题 14.4  主成分分析算法 14.5  选择主成分的数量 14.6  重建的压缩表示 14.7  主成分分析法 ...

  7. Ng第十四课:降维(Dimensionality Reduction)

    14.1  动机一:数据压缩 14.2  动机二:数据可视化 14.3  主成分分析问题 14.4  主成分分析算法 14.5  选择主成分的数量 14.6  重建的压缩表示 14.7  主成分分析法 ...

  8. Coursera《machine learning》--(14)数据降维

    本笔记为Coursera在线课程<Machine Learning>中的数据降维章节的笔记. 十四.降维 (Dimensionality Reduction) 14.1 动机一:数据压缩 ...

  9. [UFLDL] Dimensionality Reduction

    博客内容取材于:http://www.cnblogs.com/tornadomeet/archive/2012/06/24/2560261.html Deep learning:三十五(用NN实现数据 ...

随机推荐

  1. Android 学习笔记 文本文件的读写操作

    activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...

  2. Docker安装FastDFS

    什么是FastDFS? FastDFS 是用 c 语言编写的一款开源的分布式文件系统.FastDFS 为互联网量身定制, 充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用 ...

  3. 对IOC的理解

    我觉得 IOC 主要分两块去理解,  第一块 IOC是干什么的, 为什么需要IOC ?; 第二块,IOC 这么好,该怎么用? 一: 为什么需要IOC? 回答这个问题就要从ioc的含义入手:  IOC ...

  4. C#基于SQLiteHelper类似SqlHelper类实现存取Sqlite数据库的方法

    本文实例讲述了C#基于SQLiteHelper类似SqlHelper类实现存取Sqlite数据库的方法.分享给大家供大家参考.具体如下: 这个类不是我实现的,英文原文地址为http://www.egg ...

  5. 教你搭建SpringSecurity3框架(附源码)

    源码下载地址:http://pan.baidu.com/s/1qWsgIg0 一.web.xml <?xml version="1.0" encoding="UTF ...

  6. 【算法笔记】B1014 福尔摩斯的约会

    1014 福尔摩斯的约会 (20 分) 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hy ...

  7. VBS映射网络驱动器 映射网络驱动器

    Dim objNetwork Set objNetwork = CreateObject("Wscript.Network") if objNetwork.EnumNetworkD ...

  8. UML类图关系(继承、泛化、实现、依赖、关联、聚合、组合)

    继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者 ...

  9. Scala 中 for 循环 和 generator 的使用例子

    这个例子是,从每个list中,找到age最大的那个node. class Node(vName: String, vAge: Int) { // Entity class var name: Stri ...

  10. js请求数据的例子

    //es6实现方式 const getData = async ()=> { //同步请求数据 const res1=await this.$http.get("https://www ...