为什么我要从原始数据中调用一个键到PCA numpy.ndarray的图?

问题描述 投票:0回答:1

嗨,我有一个很好的代码理论问题。

我正在从sklearn将PCA运行到load_breast_cancer数据集。运行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')

谢谢!

嗨,我对一个运行良好的代码提出了理论上的疑问。我正在从sklearn将PCA运行到load_breast_cancer数据集。运行PCA之后,我根据前两个主体绘制数据...

python pandas pca sklearn-pandas
1个回答
0
投票

[似乎您通过管道运行df,并且df不包括target作为列。因此它不会在此过程中进行转换。

© www.soinside.com 2019 - 2024. All rights reserved.