zoukankan      html  css  js  c++  java
  • 机器学习实战

    [comment]: # 机器学习实战 - 读书笔记(13) - 利用PCA来简化数据

    前言

    最近在看Peter Harrington写的“机器学习实战”,这是我的学习心得,这次是第13章 - 利用PCA来简化数据。
    这里介绍,机器学习中的降维技术,可简化样品数据。

    降维技术的用途

    • 使得数据集更易使用;
    • 降低很多算法的计算开销;
    • 去除噪声;
    • 使得结果易懂。

    基本概念

    • 降维(dimensionality reduction)。
      如果样本数据的特征维度很大,会使得难以分析和理解。我们可以通过降维技术减少维度。
      降维技术并不是将影响少的特征去掉,而是将样本数据集转换成一个低维度的数据集。

    • 协方差(covariance)
      协方差用于衡量两个变量的总体误差.

    • 协方差矩阵(covariance matrix)
      对于一个N维的样品数据,(X=[x_1, x_2, ..., x_n]^T),其协方差矩阵是一个n * n的matrix,
      元素(C_{ij})(x_i)(x_j)的协方差。

    • 协方差矩阵的特征值(Eigenvalues)和特征向量(eigenvectors)
      特征值:表示特征向量对应列的权重,越大说明特征向量对应列的影响越大。
      特征向量:是一个n * n 的matrix,n是样本数据的特征数。用于降维转换。
      降维转换过程

    在特征向量中,选出特征值最大的m列,形成一个m * n的降维向量矩阵。
    对(去除平均值的)样本数据的每行数据,和降维矩阵相乘,得到一个m维的**降维数据**。
    重构的数据 = **降维数据** * **降维矩阵的转置** + 平均值
    

    核心算法解释

    主成分分析(Principal Component Analysis,PCA)

    • 基本原理
      线性代数的理论:
      • 对一个n维的样本数据,通过其协方差矩阵,可以计算出特征值和特征向量。
      • 选择特征值最大的前m项,可以将样本数据和特征向量进行计算,得到一个m维的降维数据集。
    • 输入
      • 数据集
      • 应用的Feature数
    • 输出
      • 降维数据集
      • 重构的数据集(可用于与原数据集比较)
    • 逻辑过程
    对数据集的每个Feature的数据,减去Feature的平均值。
    计算协方差矩阵
    计算协方差矩阵的特征值和特征向量
    将特征值从大到小排序
    保留最上面的N个特征向量
    使用前面提到的降维转换过程,转换数据集为降维数据集和重构的数据集
    

    核心公式

    协方差(covariance)

    协方差用于衡量两个变量的总体误差.

    [egin{align} cov(X, Y) & = E[(X-E(X))(Y-E(Y))] \ & = E[XY] - E[X]E[Y] end{align} \ where \ qquad E(X): mean(X) ]

    Matrix乘法运算

    [a * b = [a_{11}b_{11} + a_{12}b_{21} + ... + a_{1n}b_{n1}, ..., a_{11}b_{1m} + a_{12}b_{2m} + ... + a_{1n}b_{nm}] \ a * b^T = [a_{11}b_{11} + a_{12}b_{12} + ... + a_{1n}b_{1n}, ..., a_{11}b_{1m} + a_{12}b_{2m} + ... + a_{1n}b_{nm}] \ where \ qquad ext{a: a is a n-dimensions vector.} \ qquad ext{b: b is a m * n of matrix).} ]

    参考

  • 相关阅读:
    电脑快捷键
    方法
    运算符和表达式
    Java关键字和标识符
    字体和文本
    盒子模型
    css
    常用标签
    第一次课(上)
    出现次数最多的数字
  • 原文地址:https://www.cnblogs.com/steven-yang/p/5813620.html
Copyright © 2011-2022 走看看