为什么我可以调用原始数据中的键来绘制 PCA numpy.ndarray?

我有一个理论上的问题,来自一个运行良好的代码。


我正在对 sklearn 的 load_breast_cancer 数据集运行 PCA。运行 PCA 后,我根据前两个主要成分绘制数据,我知道我可以通过原始 load_breast_cancer 数据集中的一个键为数据点着色,即“目标”。


我特别关心的代码是当我绘制并编写“c=cancer['target']”时。由于 x_pca 是形状为 (569, 2) 的 numpy.ndarray,如何通过所有 PCA 保留“目标”列并特别缩放?


代码如下:


import matplotlib.pyplot as plt

import pandas as pd

import numpy as np

import seaborn as sns

%matplotlib inline


#importing dataset

from sklearn.datasets import load_breast_cancer

cancer = load_breast_cancer()

df = pd.DataFrame(cancer['data'],columns=cancer['feature_names'])


#scalling

scaler = StandardScaler()

scaler.fit(df)

scaled_data = scaler.transform(df)


# PCA

from sklearn.decomposition import PCA

pca = PCA(n_components=2)

pca.fit(scaled_data)

x_pca = pca.transform(scaled_data)


#Plotting

plt.figure(figsize=(8,6))

#Note that it is an array, not a dataframe so brackets refer to order

plt.scatter(x_pca[:,0],x_pca[:,1],c=cancer['target'],cmap='plasma')

plt.xlabel('First PC')

plt.ylabel('Second PC')


MYYA
浏览 77回答 1
1回答

明月笑刀无情

似乎您df通过管道运行,并且df不包含target在列中。所以它在这个过程中没有被转化。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python