【问题标题】:Principal Component Analysis - three classes mixed on three seperated groups主成分分析 - 三类混合在三个不同的组
【发布时间】: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


【解决方案1】:

这表明您的数据聚集在高维空间中,每个集群由带有各种标签的实例组成。

PCA 的目标是找到保留数据方差的低维投影。下面的假设示例展示了如何将线性可分的二维数据(具有三个聚类)投影到一维,投影中的聚类不对应于标签(红色与蓝色)。

【讨论】:

    猜你喜欢
    • 2020-07-04
    • 1970-01-01
    • 2023-03-25
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 2022-07-31
    相关资源
    最近更新 更多