Как объяснить вес переменных из линейного дискриминантного анализа? - PullRequest
0 голосов
/ 11 января 2019

Я работаю над контролируемой классификацией. Для начала я хотел бы найти переменные, которые имеют важный вес, чтобы различать каждый класс. Мой код следующий:

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA

X = X_train_std[0:1000,:]
y = y_train[0:1000]
target_names = classes

lda = LDA(n_components=2)
X_r2 = lda.fit(X, y).transform(X)

print('explained variance ratio (first two components) with LDA: %s'
  % str(lda.explained_variance_ratio_)) 

Результат:

explained variance ratio (first two components) with LDA: [0.64492115 0.24080238]

Тогда я попробую это:

lda.covariance_

И я получаю ошибку:

AttributeError                            Traceback (most recent call last)
<ipython-input-28-35184940aba0> in <module>
----> 1 lda.covariance_

AttributeError: 'LinearDiscriminantAnalysis' object has no attribute 'covariance_'

У вас есть идея решить эту проблему? Более того, если вы знаете, чтобы создать корреляционный круг, это было бы здорово!

Спасибо.

1 Ответ

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

Вы должны указать, что хотите сохранить ковариацию при создании LDA ...

Чтобы решить эту проблему:

lda = LDA(n_components=2, store_covariance=True)

Это должно сделать это

Ура

РЕДАКТИРОВАТЬ: для корреляции круг см. Создание круга корреляции в Python

...