当前位置: 首页 > news >正文

网站建设 财务归类天津网络广告公司

网站建设 财务归类,天津网络广告公司,青海建设局网站,国外有网站备案制度吗目录0 写在前面1 为什么要降维?2 主成分分析原理3 PCA与SVD的联系4 Python实现0 写在前面 机器学习强基计划聚焦深度和广度,加深对机器学习模型的理解与应用。“深”在详细推导算法模型背后的数学原理;“广”在分析多个机器学习模型&#xf…

目录

  • 0 写在前面
  • 1 为什么要降维?
  • 2 主成分分析原理
  • 3 PCA与SVD的联系
  • 4 Python实现

0 写在前面

机器学习强基计划聚焦深度和广度,加深对机器学习模型的理解与应用。“深”在详细推导算法模型背后的数学原理;“广”在分析多个机器学习模型:决策树、支持向量机、贝叶斯与马尔科夫决策、强化学习等。强基计划实现从理论到实践的全面覆盖,由本人亲自从底层编写、测试与文章配套的各个经典算法,不依赖于现有库,可以大大加深对算法的理解。

🚀详情:机器学习强基计划(附几十种经典模型源码)


1 为什么要降维?

首先考虑单个特征的情形,假设在样本xxx任意小邻域δ\deltaδ内都存在样本,则称对样本空间进行了密采样(dense sample)。例如取δ=0.01\delta =0.01δ=0.01,则在归一化样本平均分布的情况下需要采样100个样本。

在这里插入图片描述
然而,机器学习任务中通常面临高维特征空间,若特征维数为40,则要实现密采样就需要108010^{80}1080个样本——相当于宇宙中基本粒子的总数。所以密采样在高维特征空间中无法实现,换言之,高维特征样本分布非常稀疏,给机器学习训练、算法采样优化带来了困难。

这种高维情形下机器学习任务产生严重障碍现象称为维数灾难(curse of dimensionality),维数灾难还会以指数级的规模造成计算复杂度上升、存储占用大等问题。缓解维数灾难的一个重要途径是降维(dimension reduction),因为样本数据往往以某种与学习任务密切相关的低维分布的形式,嵌入在高维空间内,如图所示。

在这里插入图片描述

所以降维的核心原理是通过某种数学变换将原始高维特征空间转变为一个更能体现数据本质特征的低维子空间,在这个子空间中样本密度大幅提高,计算复杂度大幅降低,机器学习任务更容易进行。常见的降维技术如表所示

在这里插入图片描述

2 主成分分析原理

主成分分析(Principal Component Analysis, PCA)限制样本在经过降维映射W\boldsymbol{W}W得到的低维空间中具有最大可分性和特征最小相关性。

  • 最大可分性:指高维样本在低维超平面上的投影应尽可能远离,因为越本质的特征越能将样本区分开
  • 特征最小相关性:指量化样本属性的各个特征维度间应尽可能无关,因为特征间无关性越强构成的特征空间信息量越丰富。

满足这两个特性的特征在PCA算法中称为主成分。下面开始算法分析

假设样本X\boldsymbol{X}X经过中心化预处理,则其在低维超平面投影为WTX\boldsymbol{W}^T\boldsymbol{X}WTX,投影协方差矩阵Σ=WTXXTW\boldsymbol{\varSigma }=\boldsymbol{W}^T\boldsymbol{XX}^T\boldsymbol{W}Σ=WTXXTW,其中W=[w1w2⋯wd′]\boldsymbol{W}=\left[ \begin{matrix} \boldsymbol{w}_1& \boldsymbol{w}_2& \cdots& \boldsymbol{w}_{d'}\\\end{matrix} \right]W=[w1w2wd]为低维空间的单位正交基。

  • 考虑到最大可分性则应最大化Σ\boldsymbol{\varSigma }Σ

    我们从协方差的物理意义上思考一下为什么协方差小同类样本就接近。如图所示,是同一个三维样本在两个二维平面的投影,可以看出协方差大的样本越细长分散,协方差小则反之。所以协方差小可以使样本更聚合,也即样本投影点尽可能接近。更多协方差相关的内容请参考:机器学习强基计划1-4:从协方差的角度详解线性判别分析原理+Python实现

在这里插入图片描述

  • 考虑到特征最小相关性则应最小化Σ\boldsymbol{\varSigma }Σ的非对角线元素

综上所述,PCA的优化目标为

max⁡Wtr(WTXXTW)s.t.WTW=I\max _{\boldsymbol{W}}\mathrm{tr}\left( \boldsymbol{W}^T\boldsymbol{XX}^T\boldsymbol{W} \right) \,\,\mathrm{s}.\mathrm{t}. \boldsymbol{W}^T\boldsymbol{W}=\boldsymbol{I}Wmaxtr(WTXXTW)s.t.WTW=I

设拉格朗日函数为

L(W,Θ)=tr(WTXXTW)+<Θ,WTW−I>=tr(WTXXTW)+tr(ΘT(WTW−I))\begin{aligned} L\left( \boldsymbol{W},\boldsymbol{\varTheta } \right) &=\mathrm{tr}\left( \boldsymbol{W}^T\boldsymbol{XX}^T\boldsymbol{W} \right) +\left< \boldsymbol{\varTheta },\boldsymbol{W}^T\boldsymbol{W}-\boldsymbol{I} \right> \\&=\mathrm{tr}\left( \boldsymbol{W}^T\boldsymbol{XX}^T\boldsymbol{W} \right) +\mathrm{tr}\left( \boldsymbol{\varTheta }^T\left( \boldsymbol{W}^T\boldsymbol{W}-\boldsymbol{I} \right) \right)\end{aligned}L(W,Θ)=tr(WTXXTW)+Θ,WTWI=tr(WTXXTW)+tr(ΘT(WTWI))

对降维映射W\boldsymbol{W}W的约束分为两个:wiTwi=1,wiTwj=0(i=1,2,⋯,d′,i≠j)\boldsymbol{w}_{i}^{T}\boldsymbol{w}_i=1, \boldsymbol{w}_{i}^{T}\boldsymbol{w}_j=0\left( i=1,2,\cdots ,d',i\ne j \right)wiTwi=1,wiTwj=0(i=1,2,,d,i=j)

先考虑第一个单位化约束,则拉格朗日乘子矩阵退化为对角矩阵Λ\boldsymbol{\varLambda }Λ。现令

∂L(W,Λ)/∂W=2XXTW+2WΛ=0{{\partial L\left( \boldsymbol{W},\boldsymbol{\varLambda } \right)}/{\partial \boldsymbol{W}}}=2\boldsymbol{XX}^T\boldsymbol{W}+2\boldsymbol{W\varLambda }=0L(W,Λ)/W=2XXTW+2WΛ=0

即得XXTW=−WΛ\boldsymbol{XX}^T\boldsymbol{W}=-\boldsymbol{W\varLambda }XXTW=WΛ,考察每个wi\boldsymbol{w}_iwi

XXTwi=−λiwi=λ~iwi\boldsymbol{XX}^T\boldsymbol{w}_i=-\lambda _i\boldsymbol{w}_i=\tilde{\lambda}_i\boldsymbol{w}_iXXTwi=λiwi=λ~iwi

所以W\boldsymbol{W}W是矩阵XXT∈Rd×d\boldsymbol{XX}^T\in \mathbb{R} ^{d\times d}XXTRd×d进行特征值分解后对应的特征向量组成的矩阵,由于特征值分解可以通过施密特正交化等方式变换为正交矩阵,因此降维映射的wiTwj=0\boldsymbol{w}_{i}^{T}\boldsymbol{w}_j=0wiTwj=0约束也成立。考虑到

tr(WTXXTW)=∑i=1d′wiTXXTwi=∑i=1d′λ~iwiTwi=∑i=1d′λ~i\mathrm{tr}\left( \boldsymbol{W}^T\boldsymbol{XX}^T\boldsymbol{W} \right) =\sum\nolimits_{i=1}^{d'}{\boldsymbol{w}_{i}^{T}\boldsymbol{XX}^T\boldsymbol{w}_i}=\sum\nolimits_{i=1}^{d'}{\tilde{\lambda}_i\boldsymbol{w}_{i}^{T}\boldsymbol{w}_i}=\sum\nolimits_{i=1}^{d'}{\tilde{\lambda}_i}tr(WTXXTW)=i=1dwiTXXTwi=i=1dλ~iwiTwi=i=1dλ~i

因此取d′≪dd'\ll ddd个最大特征值对应的特征向量即可实现目标。

3 PCA与SVD的联系

PCASVD有一定联系:PCA降维需要求解协方差矩阵XXT\boldsymbol{XX}^TXXT,而SVD分解的过程中需要求解AAT\boldsymbol{AA}^TAATATA\boldsymbol{A}^T\boldsymbol{A}ATA,因此如果令A=X\boldsymbol{A}=\boldsymbol{X}A=X,那么SVD的过程中就能得到PCA所需的降维映射W\boldsymbol{W}W

在大样本下XXT\boldsymbol{XX}^TXXTAAT\boldsymbol{AA}^TAAT都将产生很高的复杂度,但SVD已有绕过计算XXT\boldsymbol{XX}^TXXTAAT\boldsymbol{AA}^TAAT直接进行分解的高效算法,因此SVD通常作为求解PCA降维问题的工具,PCA体现了SVD分解中的一个方向(左奇异或右奇异)

4 Python实现

PCA算法的复现非常简单,核心代码如下

'''
* @breif: 运行降维算法
* @param[in]: outDim -> 输出样本维数
* @retval: Z -> 低维样本集
'''          
def run(self, outDim):# 计算协方差矩阵cov = np.dot(self.X, self.X.T)# 特征值分解eigVal, eigVec = np.linalg.eig(cov)# 获取最大的d'个特征值对应的索引, np.argsort是按从小到大排序, 所以对特征值取负号index = np.argsort(-eigVal)[0:outDim]eigVec_ = eigVec[:, index]# 计算低维样本Z = np.dot(eigVec_.T, self.X)return Z

以鸢尾花数据集为例执行降维,效果如下

在这里插入图片描述

本文完整工程代码请通过下方名片联系博主获取


🔥 更多精彩专栏

  • 《ROS从入门到精通》
  • 《Pytorch深度学习实战》
  • 《机器学习强基计划》
  • 《运动规划实战精讲》

👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇
http://www.hkea.cn/news/678316/

相关文章:

  • 做网站的接私活犯法吗如何对网站进行推广
  • 身高差效果图网站优化师和运营区别
  • 谷歌wordpress建站搜索引擎算法
  • .net 购物网站开发源代码发布信息的免费平台
  • 自己做一网站大学生网络营销策划书
  • 关于网站建设的文章百度域名收录提交入口
  • 国人在线做网站推广图片大全
  • 郑州网站建设七彩科技四年级说新闻2023
  • 在什么网站上做自媒体seo整站怎么优化
  • 网站开发要注意安全性公司优化是什么意思
  • 河北邢台做移动网站开通网站需要多少钱
  • 天河网站建设多少钱淘宝关键词优化
  • 中型网站 收益关键词排名查询官网
  • 网站的弹窗是怎么做的谈谈对seo的理解
  • 广州网站制作费用宁波seo外包哪个品牌好
  • 河南高端网站建设广州网站优化页面
  • 企业可以备案几个网站南昌seo实用技巧
  • 网站用什么布局专业网站建设公司
  • 公司网站怎么做分录it培训机构学费一般多少
  • 如何将自己做的网页做成网站绍兴seo
  • 河南省住房与城乡建设厅网站首页怎么做属于自己的网站
  • 移动端网站开发推广效果最好的平台
  • 用二级页面做网站的源代码自助建站系统破解版
  • 网站上怎么做动画广告推广策略包括哪些内容
  • 广州网站优化公司大亚湾发布
  • 广州网站开发招聘百度经验悬赏令
  • 吴江建设局网站郑州粒米seo外包
  • 建设工程合同纠纷与劳务合同纠纷seo培训教程视频
  • 找网站建设公司哪家最好沈阳市网站
  • sh域名做的好的网站什么是营销