一.什么是PCA 主成分分析 Principal Component Analysis 一个非监督学的学习算法 主要用于数据的降维 通过降维,可以发现更便于人类理解的特征 其他应用:可视化:去噪 第一步:将样例的均值归零(demean) 二.使用梯度上升法求解PCA问题 梯度上升法解决主成分分析问题 三.求数据的主成分PCA 四.求数据的主成分 PCA 求数据的前 N 个主成分 求出第一个主成分以后,如何求出下一个主成分? 数据进行改变,将数据在第一个主成分的分量去掉. 我写的文章只是我自己对b…
五.高维数据映射为低维数据 换一个坐标轴.在新的坐标轴里面表示原来高维的数据. 低维 反向 映射为高维数据 PCA.py import numpy as np class PCA: def __init__(self, n_components): """初始化PCA""" assert n_components >= 1, "n_components must be valid" self.n_components =…
主成分分析(Principal Component Analysis) 一个非监督的机器学习算法 主要用于数据的降维 通过降维,可以发现更便于人类理解的特征 其他应用:可视化.去噪 通过映射,我们可以把数据从二维降到一维: 显然,右边的要好一点,因为间距大,更容易看出差距. 如何定义样本间距?使用方差,因为方差越小,数据月密集,方差越大,数据月分散. 另均值为0: 因为均值为0,w是单位向量,模为1,所以: 梯度上升法求解PCA问题 分析:X是mn的矩阵,m是样本数,n是特征数,X^(i)是第i…
(一)什么是pca pca,也就是主成分分析法(principal component analysis),主要是用来对数据集进行降维处理.举个最简单的例子,我要根据姓名.年龄.头发的长度.身高.体重.皮肤的白皙程度(随便想的)等特征来预测一个人的性别,但这些特征中有一个是最没有用的,是什么的?显然是年龄,因为年龄的大小跟这个人的性别无关.还有姓名,这个特征显然起不到决定性作用,因为有的男孩的名字起的就像女孩(比如我本人),反之亦然,但是起码绝大多数情况还是能判断的.同理还有身高,一个180CM…
主成分分析法:主要作用是降维 疑似右侧比较好? 第三种降维方式: 问题:????? 方差:描述样本整体分布的疏密的指标,方差越大,样本之间越稀疏:越小,越密集 第一步: 总结: 问题:????怎样使其最大 变换后: 最后的问题:???? 注意区别于线性回归  使用梯度上升法解决PCA问题: import numpy as np import matplotlib.pyplot as plt from sklearn import datasets digits = datasets.load_d…
一.目标函数的梯度求解公式 PCA 降维的具体实现,转变为: 方案:梯度上升法优化效用函数,找到其最大值时对应的主成分 w : 效用函数中,向量 w 是变量: 在最终要求取降维后的数据集时,w 是参数: 1)推导梯度求解公式 变形一 变形二 变形三:向量化处理 最终的梯度求解公式:▽f = 2 / m * XT . (X . dot(w) ) 二.代码实现(以二维降一维为例) 1)模拟数据 import numpy as np import matplotlib.pyplot as plt X…
一.基础理解 1) PCA 降维的基本原理 寻找另外一个坐标系,新坐标系中的坐标轴以此表示原来样本的重要程度,也就是主成分:取出前 k 个主成分,将数据映射到这 k 个坐标轴上,获得一个低维的数据集. 2)主成分分析法的本质 将数据集从一个坐标系转换到另一个坐标系,原坐标系有 n 个维度(n 中特征),则转换的新坐标系也有 n 个维度,每个主成分表示一个维度,只是对于转换后的坐标系,只取前 k 个维度(也就是前 k 个主成分),此 k 个维度相对于数据集更加重要,形成矩阵 Wk : 3)将 n…
PCA(Principal Component Analysis) 一.指导思想 降维是实现数据优化的手段,主成分分析(PCA)是实现降维的手段: 降维是在训练算法模型前对数据集进行处理,会丢失信息. 降维后,如果丢失了过多的信息,在我们不能容忍的范围里,就不应该降维. 降维没有正确与否的标准,只有丢失信息的多少: 降维的方式本质是有无穷多种的.我们期望在其中找到“最好”,或者说“丢失信息”最少的那一种: PCA算法使用的是:降维后保持原始数据的方差的多少,来衡量降维后保持原始数据了多少信息:…
机器学习算法-PCA降维 一.引言 在实际的数据分析问题中我们遇到的问题通常有较高维数的特征,在进行实际的数据分析的时候,我们并不会将所有的特征都用于算法的训练,而是挑选出我们认为可能对目标有影响的特征.比如在泰坦尼克号乘员生存预测的问题中我们会将姓名作为无用信息进行处理,这是我们可以从直观上比较好理解的.但是有些特征之间可能存在强相关关系,比如研究一个地区的发展状况,我们可能会选择该地区的GDP和人均消费水平这两个特征作为一个衡量指标.显然这两者之间是存在较强的相关关系,他们描述的都是该地区的…
梯度检验是一种对求导结果进行数值检验的方法,该方法可以验证求导代码是否正确. 1. 数学原理   考虑我们想要最小化以 θ 为自变量的目标函数 J(θ)(θ 可以为标量和可以为矢量,在 Numpy 的编程环境下,处理是一样的),迭代梯度更新公式为: 可以以sigmoid函数为例, 其导数形式为 我们可以实现梯度下降算法,那我们怎么知道g(z)梯度的准确性呢? 回忆导数的数学定义: 由此我们可得梯度校验的数值校验公式: 这便是梯度检验的原理.在实际应用中,我们常将ϵ设置为一个很小的常数,比如10-…