数据降维(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. C#调用OCX控件的常用方法[转]

    小伙伴们在使用ICP提供的各种能力进行集成开发时常常会遇到一些技术上的困扰,例如ICP中很多接口是通过OCX控件的方式提供的,如何调用这些接口,就成了一个不大不小的问题,毕竟开发指南上可没这些内容啊~ ...

  2. SQL 全角半角转换-(摘抄)

    /****** SQL转换全角/半角函数 开始******/ CREATE FUNCTION ConvertWordAngle ( @str NVARCHAR(4000), --要转换的字符串 @fl ...

  3. spring mvc 框架启动报错:nested exception is java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal 解决办法

    今天准备将以前自己搭建的一个框架拿出来用一下,结果发现启动报错:nested exception is java.lang.NoClassDefFoundError: org/w3c/dom/Elem ...

  4. Socket 简易静态服务器 WPF MVVM模式(四)

    最重要的一个类Socket类 using System; using System.Collections.Generic; using System.IO; using System.Linq; u ...

  5. 结对作业-WordCount进阶版

    1.在文章开头给出博客作业要求地址. 博客园地址:https://www.cnblogs.com/happyzm/p/9559372.html 2.给出结对小伙伴的学号.博客地址,结对项目的码云地址. ...

  6. Docker - 使用 Nexus3 搭设私有 NuGet 仓库

    目录 前言 NuGet Nexus 私有仓库 说明 安装 Nexus 拉取 Nexus 镜像 运行 Nexus Nexus NuGet 仓库简单使用 Nexus 默认帐号 Repositories 上 ...

  7. CodeForces - 233A Perfect Permutation

    A. Perfect Permutation time limit per test: 2 seconds memory limit per test: 256 megabytes input: st ...

  8. c语言和c++的相互调用

    1.c与c++编译方式 (1)gcc和g++都可以编译.c文件,也都可以编译.cpp文件.g++和gcc是通过后缀名来辨别是c程序还是c++程序的(这一点与Linux辨别文件的方式不同,Linux是通 ...

  9. Ubuntu上使用systemd创建服务文件来启动和监视底层网络应用程序实现守护进程

    在Linux上使用Nginx设置ASP.NET Core的托管环境,并部署到它 创建服务文件 创建服务定义文件: sudo vim /etc/systemd/system/kestrel-basic. ...

  10. STM32基础分析——PWM配置

    在使用STM32F103产生固定频率.固定占空比的PWM波时,虽然有官方以及众多开发板提供的例程,但是关于有点问题并没有说的很清晰,并且<STM32F10X参考手册>的中文翻译可能容易造成 ...