深度学习 with Python(二)线性代数(三)概率和信息论


(三)概率和信息论)

二、线性代数

目的:主要还是数据降维,用最少的数据去还原或者构建目标

2.1 特征值分解

只有对称正定矩阵才能进行特征值分解。
特征值分解: A = P * B * PT 其中B为对角元素为A的特征值的对角矩阵,P为A的特征向量组成的正交矩阵。在这里插入图片描述
在这里插入图片描述
然后再来看使用np中的eig分解出来的vec中行向量是特征向量还是列向量是特征向量。
在这里插入图片描述
可以看出后者相等,说明使用np中的eig分解出的vecs的列向量是特征向量。

2.2 奇异值分解

每个实数矩阵都有一个奇异值分解,但不一定都有特征分解。例如,非方阵的矩阵没有特征分解,这时我们只能使用奇异值分解。
奇异值分解的例子及作用:https://www.cnblogs.com/pinard/p/6251584.html
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#2.1特征值分解
import numpy as np
from numpy.linalg import eig
A = np.random.randint(-10,10,(4,4))
A
C = np.dot(A.T, A)# 生成对称正定矩阵
vals,vecs = eig(C)
vals
vecs
Lambda = np.diag(vals)#先将特征值转换为矩阵
np.dot(np.dot(vecs, Lambda), vecs.T) # 与C=A.T*A相等
#然后再来看使用np中的eig分解出来的vec中行向量是特征向量还是列向量是特征向量,只需验证:A*vecs[0] = vals[0]*vecs[0]
np.dot(C, vecs[0])
vals[0]*vecs[0]
np.dot(C, vecs[:,0])
vals[0]*vecs[:, 0]
#2.2奇异值分解
from numpy.linalg import svd
a = np.random.randint(-10,10,(4, 3)).astype(float)
u, s, vh = np.linalg.svd(a)# 这里vh为V的转置
u.shape, s.shape, vh.shape
#将s转化为奇异值矩阵
smat=np.zeros((4,3))
smat[:3, :3] = np.diag(s)
smat
np.allclose(a, np.dot(u, np.dot(smat, vh)))

https://www.cnblogs.com/cymwill/p/9937850.html以上的例子跟着这篇链接来的,最后将奇异值转化成矩阵报错,只能先生成一个4*3的矩阵再赋值。

2.3 Moore-Penrose 伪逆

在这里插入图片描述
根据奇异值分解可以得到UDVT,对角矩阵D+由将D中的非零元素取倒数之后再转置得到。例子及代码参考https://www.section.io/engineering-education/moore-penrose-pseudoinverse/。链接里好像直接转置了?
注意前面的SVD分解时在将数组D转化为矩阵时新建了一个空白行,这篇链接里是新建了一个空白列,奇异值矩阵D和原始矩阵的行列数相同,违逆中的矩阵D+和原始矩阵行列数相反。
直接算的话调用numpy.linalg.pinv()函数。
在这里插入图片描述
在这里插入图片描述

a=np.mat([[1,2,3],[5,4,6],[7,1,2],[9,6,1]])
u, s, vh = np.linalg.svd(a)# 这里vh为V的转置,U,D,VT
d=np.diag(s)
dinv=np.linalg.inv(d)#对奇异值对角矩阵取倒数?
dmat=np.zeros((3,4))
dmat[:3, :3]=dinv#统一成原始矩阵相反的行列数
aplus= np.dot(vh.T, np.dot(dmat,u.T))
np.linalg.pinv(a)

2.4 PCA主成分分析

https://zhuanlan.zhihu.com/p/37777074
在减少需要分析的指标同时,尽量减少原指标包含信息的损失,以达到对所收集数据进行全面分析的目的。
PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。
PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。其中,第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,第三个轴是与第1,2个轴正交的平面中方差最大的。依次类推,可以得到n个这样的坐标轴。通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面k个含有绝大部分方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。

思考:我们如何得到这些包含最大差异性的主成分方向呢?
答案:事实上,通过计算数据矩阵的协方差矩阵,然后得到协方差矩阵的特征值特征向量,选择特征值最大(即方差最大)的k个特征所对应的特征向量组成的矩阵。这样就可以将数据矩阵转换到新的空间当中,实现数据特征的降维。有特征值分解协方差矩阵和奇异值分解协方差矩阵两种解法。
PCA算法的一个问题就是不具有可解释性

2.4.1 特征值分解协方差矩阵

在这里插入图片描述

2.4.2 奇异值分解

在这里插入图片描述

三、概率和信息论

3.1 期望方差协方差

在这里插入图片描述
在这里插入图片描述
两个变量协方差为0说明不相关,一定没有线性关系,不一定独立;两个变量独立,那么一定协方差为0且没有相关关系。
在这里插入图片描述

3.2 常用概率分布

https://blog.csdn.net/qq_27388259/article/details/112168913

3.2.1 概率论中常见的概率分布

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2.2 深度学习中常用概率分布

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

3.2.3 贝叶斯规则

在这里插入图片描述
终于有个自己原创的代码了。

import pandas as pd
import numpy as np
#data=pd.DataFrame(columns=('x1','x2','x3','y'))
data=[['yes','single','high','no'],
      ['no','married','middle','no'],
      ['no','single','low','no'],
      ['yes','married','middle','no'],
      ['no','divorced','middle','yes'],
      ['no','married','low','no'],
      ['yes','divorced','high','no'],
      ['no','single','low','yes'],
      ['no','married','low','no'],
      ['no','single','low','yes']]

#求单独的先验概率p(x|y)
def naivebayes(data,n,x,y):#n为第n列,x为第n列分类为x的值,y为标签项
   numEntires = len(data)                        #返回数据集的行数
   labelCounts = {} #y
   for featVec in data:                          
        currentLabel = featVec[-1]                  
        if currentLabel not in labelCounts.keys():   
            labelCounts[currentLabel] = 0
        labelCounts[currentLabel] += 1               
   num=0
   for i in range(len(data)):
        if data[i][-1] == y and data[i][n] == x:
             num = num + 1
   #print (num/labelCounts[y])
   print ('p(',y,')的概率是:',labelCounts[y]/numEntires)#p(y)
   return (num/labelCounts[y])#p(x|y)
   
p1=naivebayes(data,0,'no','no')   
print(p1)
p2=naivebayes(data,1,'divorced','no')   
print(p2)
p3=naivebayes(data,2,'low','no')   
print(p3)
#求p(y|x)=单独的p相乘并且*p(y)
print(p1*p2*p3)

3.2.4连续型变量技术细节

在这里插入图片描述

3.3 信息论

3.3.1 信息量:自信息和香农熵

在这里插入图片描述
在这里插入图片描述

3.3.2 DKL散度和交叉熵H(P,Q)

在这里插入图片描述
在这里插入图片描述

3.5 结构化概率模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值