《机器学习实战》笔记(第四部分 其他工具)

版权声明:本文为博主原创文章,如有转载请标注来源。 https://blog.csdn.net/shengchaohua163/article/details/79355797

采用书籍《机器学习实战》,人民邮电出版社,2013年6月第1版。在线资料:英文资料,中文资料,后者中可以找到源代码和勘误。关于机器学习实战的博客已经有很多,所以本博文仅将书中的知识点进行整理和扩展。

第四部分 其他工具

第13章 利用PCA简化数据

  1. 降维技术:数据数量大,特征多,减少数据的特征进行简化,可以使得数据更易使用,降低很多算法的计算开销,去除噪声,使得结果易懂。我们主要关注没有类标注数据上的降维技术。降维技术有主成分分析(Principal Component Analysis,PCA)、因此分析(Factor Analysis,FA)、独立成分分析(Independent Component Analysis,ICA)等等。
  2. PCA:数据从原来的坐标系转换到了新的坐标系,新坐标系的选择由数据本身决定。FA:在因子分析中,我们假设在观察数据的生成中有一些观察不到的隐变量(latent variable)。假设观察数据是这些隐变量和某些噪声的线性组合,那么隐变量的数据可能比观察数据的数目少,也就是说找到隐变量就可以实现数据的降维。ICA:独立成分分析假设数据是从N个数据源生成的,这一点和因子分析有些类似。假设数据为多个数据源的混合观察结果,这些数据源之间在统计上是相互独立的,而在PCA中只假设数据是不相关的。同因子分析一样,如果数据源的数目少于观察数据的数目,则可以实现降维过程。以上3中技术中,PCA的应用较广泛。
  3. PCA的优点:降低数据的复杂性,识别最重要的多个特征;缺点:不一定需要,且可能损失有用信息;适用数据类型:数值型数据。
  4. PCA:转换坐标系,第一个新坐标轴选择的是原始数据中方差最大的方向,第二个新坐标轴的选择和第一个坐标轴正交且具有最大方差的方向。该过程一直重复,重复次数为原始数据中特征的数目。我们会发现,大部分方差都包含在最前面的几个新坐标轴中。因此,我们可以忽略余下的坐标轴,即对数据进行了降维处理。
  5. 数据的方差大小可以代表数据包含的信息多少:某一个方向方差越大,说明该方向信息越多。所以,PCA提取的第一个主成分来自数据差异性最大(方差最大)的方向,第二个主成分来自数据差异性次大并且与第一个方向正交的的方向,重复执行和特征数目一样多的次数。
  6. PCA算法流程:
    (1) 第一步,分别求每列的平均值,然后对于所有的样例,都减去对应的均值。
    (2) 第二步,求特征协方差矩阵。
    (3) 第三步,求协方差的特征值和特征向量。 ( A λ E ) v = 0 A v = λ v
    (4) 第四步,将特征值按照从大到小的顺序排序,选择其中最大的k个,然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵EigenVectors(n,k)。
    (5) 第五步,将样本点投影到选取的特征向量上。假设样例数为m,特征数为n,减去均值后的样本矩阵为DataAdjust(m,n),协方差矩阵为N(n,n),选取的k个特征向量组成的矩阵为EigenVectors(n,k)。那么投影后的数据FinalData为:
    F i n a l D a t a ( m , k ) = D a t a A d j u s t ( m , n ) E i g e n V e c t o r ( n , k )
  7. 为什么是通过求协方差矩阵的特征值和特征向量呢?因为PCA选取主成分方向按方差大小选取的,简单理解是按照数据在该方向上的投影(数据在该方向方差越大,投影也就越大)。由数据的投影求最值,求解正好是该数据协方差矩阵的特征值。
  8. 小结:降维技术使得数据更易使用,往往能够去除数据中的噪声,使得机器学习任务更加精确。降维往往作为预处理步骤,在数据应用到其他算法之前进行清洗。用PCA处理数据时将所有数据都调入了内存,如果数据集过大无法一次性做大,就需要其他的方法来寻找特征值。如果使用在线PCA分析的方法,可以参考其他资料。

第14章 利用SVD简化数据

  1. 奇异值分解(Singular Value Decomposition, SVD)可以从数据中提取信息,对数据进行约减,将数据映射到低维空间。利用SVD,我们能够用小得多的数据集表示原数据,实际上去除了噪声和冗余信息。
  2. SVD优点:简化数据,去除噪声,提高算法的结果;缺点:数据的转换可能难以理解;适用数据类型:数值型数据。
  3. SVD是一种强大的降维工具,可以利用SVD来逼近原矩阵并提取重要特征。SVD的一个应用是推荐系统,推荐引擎讲物品推荐给客户,协同过滤是一种基于用户喜好或行为数据的推荐的实现方法。协同过滤的核心是相似度计算。通过在低维空间计算相似度,SVD提高了推荐系统引擎的效果。
  4. 对SVD还不太明白,以后有时间再了解。

第15章 大数据与MapReduce

  1. 有些数据规模较大,已经远远超出了我们的处理能力。不过,一些开源的软件项目提供了海量数据处理的解决方案,其中一个项目就是Hadoop,它采用Java语言编写,支持在大量机器上分布式处理数据。Hadoop是MapReduce框架的一个免费开源实现。

猜你喜欢

转载自blog.csdn.net/shengchaohua163/article/details/79355797