吾本轻狂|PCA 主成分分析( 五 )
再来看一下更高维度的:from sklearn.datasets import load_digitsdigits=load_digits()digits.data.shape
#shape 为: 1797,64 , 有64个维度 。
def plot_digits(data):fig,axes=plt.subplots(4,10,figsize=(10,4),subplot_kw={'xticks':[],'yticks':[]},gridspec_kw=dict(hspace=0.1,wspace=0.1))for i,ax in enumerate(axes.flat):ax.imshow(data[i].reshape(8,8),cmap='binary',interpolation='nearest',clim=(0,16))plot_digits(digits.data)
画出来的图像如上图 , 现在人为给它加一点noise 。
np.random.seed(42)noisy=np.random.normal(digits.data,4)plot_digits(noisy)
得到下面的图像:
然后只提取前面50%的variance ,
pca=PCA(0.5).fit(noisy)plt.plot(np.cumsum((pca.explained_variance_ratio_)))
画出上图所需要的相关计算如下:
所有components的方差求和:Total_var=explained_variance_.sum()
每个component的方差所占比例:Explained_variance_ratio_ = explained_variance_ / total_var
每个component的方差所占比例求和:Np.cumsum() 。
上图可以看到对方差占比总和刚达50%时 , components的数量为12个 , 也就是对方差按从大到小排名后 , 前面至少12个components的variance加起来才会占总的variance 50%以上 , 使用那12个components进行画图:
components=pca.transform(noisy)filtered=pca.inverse_transform(components)plot_digits(filtered)
【吾本轻狂|PCA 主成分分析】上图看起来虽然没有加noise之前的图清晰 , 但是比增加了noise的那张图要清晰很多 , 这个提取主成分的过程过滤掉了很多不必要的成分 , 也就是一个过滤noise的过程 , 即使丢掉了一些细微的信息 , 但是图像的质量比有Noise那个清晰多了 。
- LOL|宁王人物志,谁能想到年少轻狂的他最后能成就传奇?他的故事还在继续
- 吾本轻狂|新思科技助力法国电信企业SFR应对软件安全挑战
- 吾本轻狂|设计行业如何在新基建时代抢占先机?
- 吾本轻狂|网易云音乐灰色歌曲下载方法,下架歌曲轻松听
- 吾本轻狂|手机充电这点小事?不,那是大事
- 吾本轻狂|2799元的吃鸡配置香不香
- 难免轻狂|老照片上色后真美
- 吾本轻狂|微软最强版DX12杀到:AMD开始爆发比拼NV
- 吾本轻狂|Win10怎么看电脑显卡内存
- 难免轻狂|美丽南泥湾,节约粮食,从你我做起——陕西省延安市,陕北好江南