【发布时间】:2020-11-08 08:14:00
【问题描述】:
我有一个包含 3 个标签和 27 个特征的数据集。我试图在其上使用 PCA 并将尺寸减小到 2。结果有点令人困惑。老实说,我没想到会有太好的结果,但我得到了第一张照片,我很惊讶。
由于我有三个标签,我认为我的三个类很清楚。但是,当我应用颜色时,我得到以下图片:
我有点想知道这三个班级完全混合在三个明显分开的组中。我也在 3D 中尝试过,结果看起来完全一样。 我的代码中是否有任何错误,或者有人知道发生这种情况的原因吗?
import pandas as pd
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
from sklearn.preprocessing import (StandardScaler, MaxAbsScaler, RobustScaler,
Normalizer, QuantileTransformer, PowerTransformer, MinMaxScaler)
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
Dataset = pd.read_csv("...", header=0)
feature_spalten = ['...']
x = Dataset[feature_spalten]
y = Dataset.Classifier
sc = StandardScaler()
x = sc.fit_transform(x)
p = PCA()
p.fit(x)
x_transformed = p.transform(x)
plt.figure()
plt.scatter(x_transformed[:, 0], x_transformed[:, 1])
plt.figure()
for label in y.unique():
x_transformed_filtered = x_transformed[y == label, :]
plt.scatter(x_transformed_filtered[:, 0], x_transformed_filtered[:, 1],
label=label, s = 25)
plt.legend()
plt.show()
【问题讨论】:
-
您能否尝试可视化 PCA 的 3D 维度版本。
-
请不要破坏您的问题。
标签: python machine-learning scikit-learn dataset pca