说明:这里使用的是KNN算法来降维,PCA降维同样适合其它算法

准备数据

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. from sklearn import datasets
  4. # 准备数据
  5. digits = datasets.load_digits()
  6. X = digits.data
  7. y = digits.target
  8. # 分割数据
  9. from sklearn.model_selection import train_test_split
  10. X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=666)
  11. # 查看数据维度
  12. X_train.shape # (1347, 64)

建模

不使用PCA

image.png

使用PCA

image.png

PC解释的方差

主成分所代表的原数据的比例

每个主成分的解释性

从前到后,从大到小
image.png

前N个主成分的解释性

image.png

设定解释值

image.png