吾本轻狂|PCA 主成分分析( 三 )
假设A矩阵如下:
下面将A矩阵分解为U , V , S:计算U时 , 因为U是AAT的正交特征矩阵 , 所以下面要先计算AAT , 然后待求得特征值之后 , 再计算它的正交矩阵:
计算特征值:
得AAT的特征值为
代入特征值 , 并计算得特征向量和矩阵为:
由于V是ATA的正交特征矩阵 , 那么可以使用相同的方法计算V:
先求得ATA的特征值为
,
对应的特征向量和矩阵为:
由上面得到的U和V , 可以通过下式求解得S:
把所求得的矩阵代回下式计算验证 , 最后等于A , 没有问题 。
至于为什么可以通过这样的方式计算得到左奇异矩阵 , 右奇异矩阵和奇异值 , 相关证明自己找文献哈 。
下面对使用SVD方法找出的PCA结果画图查看一下 。
def draw_vector(v1,v0,ax=None):ax=ax or plt.gca()arrowprops=dict(arrowstyle='<-',linewidth=2,shrinkA=0,shrinkB=0,color='Black')ax.annotate('',v1,v0,arrowprops=arrowprops)#draw a FancyArrowPatch arrow between the positions xy and xytext(v1 and v0).
plt.scatter(X[:,0],X[:,1],alpha=0.3)for length,vector in zip(pca.explained_variance_,pca.components_):v=vector*3*np.sqrt(length)draw_vector(pca.mean_,pca.mean_+v)plt.axis('equal')
代码中相关参数解析:
Pca.components_:array,shape(n_components, n_features)
Components_=V
Principal axes in feature space, representing the direction of maximum variance in the data 。
特征空间中的主轴(主要成分) , 展示数据中最大方差的方向 , (要看你需要 , 需要两个主成分 , n_components=2时就是前两大) , 确定的是主成分的方向 。
Pca.explained_variance_:array,shape(n_components,)
Explained_variance_=(S**2)/(n_samples-1)
The amount of variance explained by each of the selected components.
- LOL|宁王人物志,谁能想到年少轻狂的他最后能成就传奇?他的故事还在继续
- 吾本轻狂|新思科技助力法国电信企业SFR应对软件安全挑战
- 吾本轻狂|设计行业如何在新基建时代抢占先机?
- 吾本轻狂|网易云音乐灰色歌曲下载方法,下架歌曲轻松听
- 吾本轻狂|手机充电这点小事?不,那是大事
- 吾本轻狂|2799元的吃鸡配置香不香
- 难免轻狂|老照片上色后真美
- 吾本轻狂|微软最强版DX12杀到:AMD开始爆发比拼NV
- 吾本轻狂|Win10怎么看电脑显卡内存
- 难免轻狂|美丽南泥湾,节约粮食,从你我做起——陕西省延安市,陕北好江南