使用 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)