#废话不多说,直接上代码!
#重要的部分有注释,所有的参数都有参数说明,可以直接运行,适合小白。
#未经许可,禁止转载。
#鸢尾花数据集导入
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
iris = load_iris()
x = iris.data #想知道数据到底长什么样子,推荐打印出来仔细观察
y = iris.target
#模型实现
pca = PCA(n_components=2) #构建模型 ,n_components=2代表降到2维
pca = pca.fit(x) #拟合模型
X_dr = pca.transform(x) #获取新矩阵
#画图
plt.figure()
plt.scatter(X_dr[y==0, 0], X_dr[y==0, 1], c="red", label=iris.target_names[0])
plt.scatter(X_dr[y==1, 0], X_dr[y==1, 1], c="black", label=iris.target_names[1])
plt.scatter(X_dr[y==2, 0], X_dr[y==2, 1], c="orange", label=iris.target_names[2])
plt.legend()
plt.title('PCA of IRIS dataset')
plt.show()
#结果:
-----------------------------------------------------------------------------------------------
#选学:探索降维后的数据
#属性explained_variance_,查看降维后每个新特征向量上所带的信息量大小
print(pca.explained_variance_)
#属性explained_variance_ratio,查看降维后每个新特征向量所占的信息量占原始数据总信息量的百分比,又叫做可解释方差贡献率
print(pca.explained_variance_ratio_)
#计算所有的新特征向量所占的信息量占原始数据总信息量的百分比
print(pca.explained_variance_ratio_.sum())