【sklearn第二十一讲】矩阵分解问题

本文介绍了机器学习中的矩阵分解技术,包括主成分分析(PCA)、增量PCA、随机SVD、因子分析和非负矩阵分解(NMF)。PCA用于降维并保留方差,因子分析提供了概率模型处理异方差性,NMF适用于非负数据,如图像和文本的表示。文章展示了不同方法在实际数据集上的应用效果。
摘要由CSDN通过智能技术生成

机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq:2279055353)

主成分分析

精确主成分

主成分分析(Principal component analysis, PCA)通常用来分解一个多变量数据集成为逐次正交的成分,这些成分解释原始变量的方差最大。在scikit-learn里,PCA是一个转换对象,在该对象的fit方法里学习n个成分,用于新数据投影到这些成分上,得到新的主成分数据。

设置最优参数whiten=True, 投影数据到奇异空间上,缩放每个主成分为单位方差。在支持向量机和k-means里,这样的参数设置是有利的。

增量主成分

PCA对象虽然有用,但对于大数据集却有些限制。最大的限制是,PCA只支持批量处理,这意味着所有等待处理的数据必须符合主存储器的要求。IncrementalPCA对象使用了一个不同的处理形式,它考虑几乎精确地匹配PCA结果的部分计算,而以一种最小批量的方式处理数据。IncrementalPCA只存储主成分和噪音方差的估计。

随机SVD

通过放弃较小奇异值的主成分的奇异向量,可以实现将数据投射到低维空间,而仍能保持大部分方差的目的。例如,对于 64 × 64 64\times64 64×64的人脸识别灰度图像,数据的维度是4096, 在这样规模的数据上训练一个RBF支持向量机是很慢的。由于人脸的所有图像看起来相似,所以数据的内在维度远小于4096. PCA算法能够用来线性地转换数据,同时降低维度和保持大部分可解释方差。
PCA类里,当我们想放弃大部分限制计算的奇异向量时,使用参数svd_solver='randomized'是非常有用的。例如,下面显示了来自Olivetti数据集的16个样本肖像。在右边是由前16个奇异向量重新组成的肖像。该数据集的样本数是400, 特征数是4096, 而我们仅仅需要前16个奇异向量来表示,计算时间不到1秒。

这里写图片描述

注意:在设置参数svd_solver='randomized’时,同时也需要设置低维空间大小参数n_components.

因子分析

在无监督学习里,我们只有一个数据集 X = { x 1 , x 2 , … , x n } X=\{x_1, x_2, \dots, x_n\} X={ x1,x2,,xn}. 数学上怎样表示这个数据集呢? X X X 的一个简单的连续隐变量模型是
x i = W h i + μ + ϵ x_i=W h_i+\mu+\epsilon xi=Whi+μ+ϵ

向量 h i h_i hi 称为隐藏的,因为它是观测不到的。 ϵ \epsilon

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值