降维是什么意思(降维兼容是什么意思)

奇异值分解过程我们的原始数据样本:A = np.array([[2,4],[1,3],[0,0]])A数组([[2,4],[1, 3],[0, 0]])#转换成

奇异值分解过程

我们的原始数据样本:

A = np.array([[2,4],[1,3],[0,0]])

A

数组([[2,4],

[1, 3],

[0, 0]])

#转换成我们想要的A,设置特征为axis=0

A = A.T

A

数组([[2,1,0],

[4, 3, 0]])

在Numpy中调用奇异值分解API:

#奇异值分解

np.linalg.svd(A)

结果是三个数组U *适马*V被转置。

(数组([[-0.40455358,-0.9145143),

[-0.9145143 , 0.40455358]]),

数组([ 5.4649857,0.36596619]),

数组([[-0.81741556,-0.57604844,0。],

[-0.57604844, 0.81741556, 0.],

[ 0., 0., 1.]]))

现在看看数据A是如何进行奇异值分解的:

通过A点(A.T)的特征值获得#U矩阵(按最大特征值到最小特征值排序)

np.linalg.eig( A.dot(A.T))

(数组([ 0.13393125,29.86606875]),数组([[-0.9145143,-0.40455358),

[ 0.40455358, -0.9145143 ]]))

#奇异值(特征值的开根号)

np.sqrt(29.86606875),np.sqrt(0.13393125)

#V的转置由A.T .点(A)的特征值获得(从最大特征值到最小特征值排序)

np.linalg.eig(A.T.dot(A))

(数组([ 29.86606875,0.13393125,0。]),

数组([[ 0.81741556,-0.57604844,0。],

[ 0.57604844, 0.81741556, 0.],

[ 0., 0., 1.]]))

03

奇异值分解降维示例

SVD的奇异值也是降序排列,奇异值的梯度很大。昨天我们介绍过,很多情况下,前10%甚至1%的奇异值之和占总奇异值的99%。这是什么意思?意味着可以将原矩阵压缩成一个非常小的矩阵,其主要成分的信息不会丢失。

也就是说,我们也可以用最大的K个奇异值和对应的左右奇异向量来逼近原始矩阵数据,如下图所示:

接受挑战:数据降维的实战分析「纯干货」

接下来,我们实际走一遍这个过程,用numpy库随机生成一个5*9的二维数组(也叫矩阵条)a:

数组([[6,4,9,4,2,7,6,2,6],

[6, 3, 0, 5, 6, 2, 5, 4, 8],

[6, 0, 4, 2, 3, 5, 4, 9, 7],

[6, 1, 3, 6, 5, 1, 3, 7, 1],

[4, 1, 6, 4, 2, 4, 1, 3, 6]])

那么如何先降低特征的维度呢?例如,如果维数减少到5* r列,只要减少的R列能近似表示原矩阵,奇异值分解的公式就是已知的:

接受挑战:数据降维的实战分析「纯干货」

因此,如果要将A减少到R个特征,只需将最后一个近似方程的两边乘以Vr*n,如下所示:

接受挑战:数据降维的实战分析「纯干货」

由于Vr*n是正交矩阵,V的转置等于V的逆矩阵,因此,上述公式进一步简化为:

接受挑战:数据降维的实战分析「纯干货」

这样,近似等号的右边是一个m*r矩阵,是压缩A矩阵后的近似矩阵,V是中间的变换矩阵。

借助于numpy的API,我们发现84%的奇异值之和已经用取三个奇异值来表示了,所以我们取前三个奇异值,这样就可以发现U *奇异值等于如下: (显示1位小数)

数组([[-15.3,6.3,-0.8),

[-13.2, -3.9, -4.9],

[-14.5, -1.4, 2.9],

[-11.2, -4.6, 2.5],

[-10.9, 2.6, 0.6]])

这样就完成了特征的压缩,最终将包含9个特征的数据压缩成3个特征。那么如何按照行压缩数据呢?和上面的原理差不多。将奇异值分解方程两边的U的转置相乘,得出下面的公式。等号右边不就是按行压缩的r*n的矩阵吗!

接受挑战:数据降维的实战分析「纯干货」

至此,按照特征压缩、数据样本压缩和双向压缩完成了SVD压缩方法和实例。我们来看看它的实际应用。

04

数据压缩的实际应用

比如在sklearn的虹膜经典数据集上,经过PCA后,只提取了虹膜的四个特征中的两个,并表示了主方差。这是典型的数据降维演示。

接受挑战:数据降维的实战分析「纯干货」

此外,PCA的特征值分解和奇异值分解也广泛应用于图像处理和压缩。图像数据可以用奇异值分解,然后降维。比如下图,通过奇异值分解得到的主成分提取后的压缩图像,基本可以保留原图像主要信息。

接受挑战:数据降维的实战分析「纯干货」

总之,介绍了用奇异值分解压缩矩阵的原理和一个实例。最后介绍了主成分分析的实际应用。前面介绍了决策树的原理和实例分析。明天基于时间,介绍一个经典的机器学习集成算法XGBoost,是中国科学家发明的。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/119742.html

发表回复

登录后才能评论