from sklearn.decomposition import PCA
my_pca = PCA(n_components=7) #10个属性删了3个剩7个
#数据表中不允许出现离散数据(salary,department),而且分析的left属性也不需要进行pca处理,因为是我们关注的属性
lower_mat = my_pca.fit_transform(df.drop(labels=["salary","department","left"],axis = 1))
print("Ratio:",my_pca.explained_variance_ratio_) #通过主成分分析,发现只有第一个值接近1,其他值都接近0,所以只保留第一个值就行了
sns.heatmap(pd.DataFrame(lower_mat).corr(),vmin=-1,vmax=1,cmap=sns.color_palette("RdBu",n_colors=128))
plt.show()
结果: