[关闭]
@rianusr 2019-08-13T02:06:59.000000Z 字数 1571 阅读 2701

第六章:机器学习01:特征工程--03数据降维

06-机器学习


1 数据降维

1.1 什么是降维

1什么是降维.png-305.9kB

1.2 为什么要降维

2为什么要降维.png-157.3kB

1.3 什么时维数灾难

什么时维数灾难.png-201.8kB

1.4 为什么维数多了之后会发生维数灾难

为什么维数多了之后会发生维数灾难、.png-481.1kB

1.5 降维之后

降维之后.png-370.4kB

1.6 避免维数灾难的方法

避免维数灾难.png-202.4kB

1.7 常用的数据降维方法

常用的降维方法.png-99.6kB

2 数据降维之主成分分析(PCA)-- 无监督降维技术

2.1 主成分分析(PCA)原理

主成分分析(PCA)原理.png-205.7kB

2.2 主成分分析(PCA)操作流程

2.2.1 主成分分析(PCA)操作流程-第一步

主成分分析(PCA)操作流程第一步.png-201.7kB

2.2.1 主成分分析(PCA)操作流程-第二步

主成分分析(PCA)操作流程第二步.png-166.7kB

2.2.1 主成分分析(PCA)操作流程-第三步

主成分分析(PCA)操作流程第三步.png-100.4kB

2.2.1 主成分分析(PCA)操作流程-第四步

主成分分析(PCA)操作流程第四步.png-147.1kB

2.2.1 主成分分析(PCA)操作流程-第五步

主成分分析(PCA)操作流程第五步.png-239.8kB

3 PCA降维代码实现(基于sklearn.decomposition模块下的PCA模块)

  1. from sklearn import datasets #获取内置数据
  2. iris=datasets.load_iris() #导入iris数据
  3. x=iris.data
  4. y=iris.target
  5. print(x[:10])
  6. print(y[:10])
  7. # 构建PCA模型
  8. from sklearn.decomposition import PCA
  9. # sklearn.decomposition.PCA(n_components=None,cpopy=True,whiten=False)
  10. # n_components:主成分个数
  11. # cpopy:是否复制一份原始数据,default=Ture
  12. # whiten:白化,使用每个特征具有相同的方差,default=False
  13. pca=PCA(n_components=3) # 定义一个PCA模型
  14. pca.fit(x) # fit()函数
  15. x_new=pca.transform(x) # transform()函数
  16. print(x_new[:5])
  17. # x_new=pca.fit_transform(x) #fit_transform -- 可以替代fit()和transform()
  18. #主成分解释方差占比
  19. print(pca.explained_variance_ratio_)
  20. print(pca.explained_variance_)
  21. #PCA降维后可视化
  22. pca=PCA(n_components=2) #降到2维之后图表进行展示
  23. pca.fit(x)
  24. x_new = pca.transform(x)
  25. import matplotlib.pyplot as plt
  26. %matplotlib inline
  27. plt.scatter(x_new[:,0],x_new[:,1],marker="o",c=y)
  28. plt.show()

image_1cesa70ed6ag1rnfkgl12pf19l55.png-41.6kB

4 数据降维之线性判别分析(LDA)--监督学习(引入目标变量)降维

4.1 LDA分析原理

线性判别分析(LDA)原理.png-283.7kB

5 LDA分析代码实现 -- 基于sklearn

  1. from sklearn import datasets
  2. #导入iris数据
  3. iris=datasets.load_iris() #获取内置数据
  4. x=iris.data
  5. y=iris.target
  6. print(x[:10])
  7. print(y[:10])
  8. #LDA降维
  9. from sklearn.lda import LDA
  10. import matplotlib.pyplot as plt
  11. lda=LDA(n_components=2) #定义一个LDA模型
  12. x_new = lda.fit_transform(x,y) #fit()、transfrom()之后产生新的数据集
  13. print(x_new[:5])
  14. lda.predict(x) # predict()函数
  15. lda.score(x,y)
  16. plt.scatter(x_new[:,0],x_new[:,1],marker="o",c=y)
  17. plt.show()

LDA.png-70.2kB

6 总结:

6.1 PCA与LDA进行对比

PCA与LDA对比.png-176.6kB

6.2 PCA与LDA实例结果对比

PCA与LDA实例结果对比.png-210.8kB

6.3 PCA和LDA的使用总结:

PCA与LDA使用总结.png-108.3kB

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注