使用 Python 绘制 PCA 结果,包括带有散点图的原始数据

Posted

技术标签:

【中文标题】使用 Python 绘制 PCA 结果,包括带有散点图的原始数据【英文标题】:Plotting PCA results including original data with scatter plot using Python 【发布时间】:2016-02-05 16:53:19 【问题描述】:

作为练习,我对虹膜数据进行了 PCA。这是我的代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import style
style.use("ggplot")
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA # as sklearnPCA
import pandas as pd
#=================
df = pd.read_csv('iris.csv');
# Split the 1st 4 columns comprising values
# and the last column that has species
X = df.ix[:,0:4].values
y = df.ix[:,4].values

X_std = StandardScaler().fit_transform(X);  # standardization of data

# Fit the model with X_std and apply the dimensionality reduction on X_std.
pca = PCA(n_components=2) # 2 PCA components;
Y_pca = pca.fit_transform(X_std)

# How to plot my results???? I am struck here! 

请告知如何绘制我的原始虹膜数据和使用散点图得出的 PCA。

【问题讨论】:

请格式化您的帖子!你都没看过吗? 【参考方案1】:

这是我认为您可以将其可视化的方式。我将把 PC1 放在 X 轴上,将 PC2 放在 Y 轴上,并根据每个点的类别为其着色。代码如下:

#first we need to map colors on labels
dfcolor = pd.DataFrame([['setosa','red'],['versicolor','blue'],['virginica','yellow']],columns=['Species','Color'])
mergeddf = pd.merge(df,dfcolor)

#Then we do the graph
plt.scatter(Y_pca[:,0],Y_pca[:,1],color=mergeddf['Color'])
plt.show()

【讨论】:

以上是关于使用 Python 绘制 PCA 结果,包括带有散点图的原始数据的主要内容,如果未能解决你的问题,请参考以下文章

python实现PCA降维画分类散点图并标出95%的置信区间

使用带有字典的matplotlib在python中绘制散点图

R语言plotly可视化:使用PCA算法进行数据降维使用plotly可视化PCA所有的主成分绘制散点图矩阵降维后的两个(三个)核心主成分的二维三维可视化图形方差解释的量载荷图等

使用Python,PCA对iris数据集降维2维/3维并进行2D,3D散点图绘制(包括有图例&无图例,有标题Label&无标题Label)

如何在 Python 中用空圆圈绘制散点图?

Python使用scatter()绘制散点图