为了账号安全,请及时绑定邮箱和手机立即绑定

使用 PCA 进行降维。为什么没有出现图表中的所有数字?

使用 PCA 进行降维。为什么没有出现图表中的所有数字?

德玛西亚99 2022-10-06 19:40:29
我使用了来自 Sklearn 的 Digits 数据集,并尝试将维度从 64 减少到 2:import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns#%matplotib inlinefrom sklearn.decomposition import PCAfrom sklearn.datasets import load_digitsdigits = load_digits()digits_df = pd.DataFrame(digits.data,)digits_df["target"] = pd.Series(digits.target)pca = PCA(n_components=2)digits_pca = pca.fit_transform(digits_df.iloc[:,:64])digits_df_pca = pd.DataFrame(digits_pca,                            columns =["Component1","Component2"])finalDf = pd.concat([digits_df_pca, digits_df["target"]], axis = 1)plt.figure(figsize=(10,10))sns.scatterplot(data=finalDf,x="Component1", y = "Component2",hue="target",               )图表:图中唯一的数字是 0、3、6、9。为什么我看不到其他五个数字?
查看完整描述

1 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

如果所有标签都可用一组标签,则签入您的数据。


如果是,那么您可以尝试


sns.scatterplot(data=finalDf,x="Component1", y = "Component2",hue="target",

               legend = 'full')

工作代码:


import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

#%matplotib inline

from sklearn.decomposition import PCA

from sklearn.datasets import load_digits


digits = load_digits()

digits_df = pd.DataFrame(digits.data,)

digits_df["target"] = pd.Series(digits.target)


pca = PCA(n_components=2)


digits_pca = pca.fit_transform(digits_df.iloc[:,:64])

digits_df_pca = pd.DataFrame(digits_pca,

                            columns =["Component1","Component2"])


finalDf = pd.concat([digits_df_pca, digits_df["target"]], axis = 1)


plt.figure(figsize=(10,10))

palette = sns.color_palette("bright", 10)

sns.scatterplot(data=finalDf,x="Component1", y = "Component2",hue="target",

               legend = 'full', palette = palette)

查看完整回答
反对 回复 2022-10-06
  • 1 回答
  • 0 关注
  • 153 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号