Изготовить набор данных для тестирования PCA в Sklearn? - PullRequest
0 голосов
/ 01 марта 2020

Я хотел бы протестировать свой рабочий процесс для PCA, для этого я хочу создать набор данных с, скажем, 3 функциями с установленной взаимосвязью между этими функциями. затем примените PCA и проверьте, были ли эти отношения зафиксированы, какой самый простой способ сделать это в Python?

Спасибо!

1 Ответ

0 голосов
/ 01 марта 2020

Вы можете создавать образцы, в которых два элемента не зависят друг от друга, а третий элемент представляет собой линейную комбинацию двух других.

Например:

import numpy as np
from numpy.random import random

N_SAMPLES = 1000

samples = random((N_SAMPLES, 3))

# Let us suppose that the column `1` will have the dependent feature, the other two being independent

samples[:, 1] = 3 * samples[:, 0] - 2 * samples[:, 2]

Теперь, если вы запустите PCA, чтобы найти два основных компонента в этом образце, «объясненная дисперсия» должна быть равна 1.

Для пример:

from sklearn.decomposition import PCA

pca2 = PCA(2)
pca2.fit(samples)

assert sum(pca2.explained_variance_ratio_) == 1.0 # this should be true

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...