降维分析实验

一、实验要求

在计算机上验证和测试sklearn的相关降维和主成分分析算法。

  • 实验目的

1、掌握降维分析算法的原理

2、掌握sklearn如何实现降维分析;

三、实验内容

实验步骤

  1. 请阅读降维分析的参考代码,完成sklearn对莺尾花4维数据降维为2维,分别用协方差矩阵和sklearn中PCA的方式。

协方差(Covariance)是度量两个变量的变动的同步程度,也就是度量两个变量线性相关性程度。如果两个变量的协方差为0,则统计学上认为二者线性无关。注意两个无关的变量并非完全独立,只是没有线性相关性而已。

代码示例

X1 = iris.data #原始4维数据
X1cov=np.cov(X1.T)#计算协方差矩阵
eig,featueVector = np.linalg.eig(X1cov) #对协方差矩阵进行,特征值和特征向量提取
eig,featueVector
#取前2个特征向量,就是降为2维数据
X1new = X1.dot(featueVector[:,:2]) #原始数据,在特征向量坐标系进行重新投影
X1new
#画出前2个特征的散点图
plt.scatter(X1new[y==0,0],X1new[y==0,1])
plt.scatter(X1new[y==1,0],X1new[y==1,1])
plt.scatter(X1new[y==2,0],X1new[y==2,1])
plt.ylim([-10,1.5])
plt.grid()
plt.xlabel('新特征1')
plt.ylabel('新特征2')
plt.show()

 

主成分分析(Principal Component Analysis,PCA)是最常用的一种降维方法,通常用于高维数据集的探索与可视化,还可以用作数据压缩和预处理等。矩阵的主成分就是其协方差矩阵对应的特征向量,按照对应的特征值大小进行排序,最大的特征值就是第一主成分,其次是第二主成分,以此类推。

代码示例
X1 = iris.data #原始4维数据
#降维为2
pca = PCA(n_components=2)
pca.fit(X1)
X1new = pca.transform(X1)
plt.scatter(X1new[y==0,0],X1new[y==0,1],c='r',marker='x')
plt.scatter(X1new[y==1,0],X1new[y==1,1],c='b',marker='D')
plt.scatter(X1new[y==2,0],X1new[y==2,1],c='g',marker='.')
plt.ylim([-2,1.5])
plt.grid()
plt.xlabel('新特征1')
plt.ylabel('新特征2')
plt.show()

 

 

四、实验总结

1. 降维可以缓解维度灾难问题; 
2. 降维可以在压缩数据的同时让信息损失最小化; 
3. 理解几百个维度的数据结构很困难,两三个维度的数据通过可视化更容易理解。 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值