LDA неожиданное количество выбранных функций - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь выполнить LDA (линейный дискриминантный анализ), чтобы уменьшить размерность (с 532 объектов) до моего набора данных (features, матрица 1360x532).

lda = LinearDiscriminantAnalysis(n_components=80)
features = lda.fit(features, target).transform(features)
print("[STATUS] LDA performed")
print("[STATUS] feature vector size {}".format(np.array(features).shape))

Я написалэтот код, и я ожидал, что функции станут 80, но я получаю этот неожиданный вывод.

[STATUS] target labels shape: (1360,)
/home/robb/.local/lib/python2.7/site-packages/sklearn/discriminant_analysis.py:388: UserWarning: Variables are collinear.
  warnings.warn("Variables are collinear.")
[STATUS] LDA performed
[STATUS] feature vector size (1360, 16)

Почему 16?Это как-то связано с предупреждением, которое я получаю?

1 Ответ

0 голосов
/ 23 января 2019

LDA работает не так, как вы ожидаете.

Количество компонентов всегда меньше количества уникальных классов.

Из документов :

Количество компонентов (


Я предполагаю, что у вас есть 17 уникальных меток классов в переменной target и, таким образом, указав 80 компонентов (что> 17), вы получите такой результат.

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