Использование 4 компонентов в Принципе анализа компонентов (PCA) - PullRequest
0 голосов
/ 13 февраля 2020

Я не знаю, как интерпретировать выходные данные Принципиального анализа компонентов (PCA) и графика накопленной суммы.

У меня следующая проблема. У меня есть 4 машины (A, B, C и D), и каждая машина имеет 9 функций, где измерения проводились в течение времени. Цель состоит в том, чтобы классифицировать поведение машины.

Я использую Принципиальный анализ компонентов, чтобы уменьшить размерность из 9 функций. Уменьшая размерность исходного пространства признаков, спроецировав его на меньшее подпространство, а затем нанеся на график кумулятивную сумму по всей дисперсии, вы можете видеть, что первые 4 собственных значения соответствуют примерно 82% всей дисперсии 1 . Это означает, что при уменьшении размерности теряется 18% информации.

Я хочу кластеризовать машины на основе главных компонентов, но примеры, которые я нахожу, всегда отображают данные с использованием 2 основных компонентов (ПК). * +1009 * 2 . 2 - это график, который я строю, используя только 2 ПК.

Если график кумулятивной суммы предполагает, что 4 ПК соответствуют 82% всей дисперсии, а примеры PCA имеют только 2 ПК, что мне делать? Нужно ли применять PCA во второй раз? Или мне нужно сделать что-то еще, чего я не знаю?

В [3] я показываю код, который мне нужен для использования PCA с 2 компонентами, и строю график. A, B, C и D. являются машинами.

enter image description here

enter image description here

[3]

sklearn_pca = sklearnPCA(n_components=2)
Y_sklearn = sklearn_pca.fit_transform(X_std)

data = []

for name, col in zip(machine_list, colors.values()):

    trace = dict(
        type='scatter',
        x=Y_sklearn[y==name,0],
        y=Y_sklearn[y==name,1],
        mode='markers',
        name=name,
        marker=dict(
            color=col,
            size=12,
            line=dict(
                color='rgba(217, 217, 217, 0.14)',
                width=0.5),
            opacity=0.8)
    )
    data.append(trace)

layout = dict(
        xaxis=dict(title='PC1', showline=False),
        yaxis=dict(title='PC2', showline=False)
)
fig = dict(data=data, layout=layout)
iplot(fig)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...