Я використовував лінійний дискримінантний аналіз (LDA) з scikit-learn
бібліотеки машинного навчання (Python) для зменшення розмірності і трохи цікавився результатами. Мені зараз цікаво, чим scikit-learn
займається LDA , щоб результати виглядали інакше, ніж, наприклад, ручний підхід або LDA, зроблені в Р. Було б чудово, якби хтось міг дати мені тут деяку інформацію.
Що в основному найбільше стосується, це те, що scikit-plot
показує кореляцію між двома змінними, де має бути кореляція 0.
Для тесту я використовував набір даних Iris, і перші 2 лінійних дискримінанта виглядали так:
IMG-1. LDA через scikit-learn
Це в основному відповідає результатам, які я знайшов у документації, що навчається тут.
Тепер я пройшов крок за кроком LDA і отримав іншу проекцію. Я спробував різні підходи, щоб з’ясувати, що відбувається:
IMG-2. LDA щодо необроблених даних (без центрування, без стандартизації)
І тут був би покроковий підхід, якби я спочатку стандартизував (нормалізація z-балів; відхилення одиниці). Я робив те саме, що робив лише середнє центрування, що повинно призвести до того самого відносного зображення проекції (і це було насправді).
IMG-3. Покрокова LDA після середнього центрування або стандартизації
IMG-4. LDA в R (настройки за замовчуванням)
LDA в IMG-3, де я зосереджував дані (який був би кращим підходом), виглядає також точно так само, як той, який я знайшов у Пості від когось, хто зробив LDA в R
Код довідки
Я не хотів вставляти сюди весь код, але я завантажив його як зошит IPython, розбитий на кілька кроків, які я використав (див. Нижче) для проекції LDA.
- Крок 1: Обчислення середньовимірних векторів
Крок 2: Обчислення матриць розсіювання
2.1 Матриця розсіювання всередині класу обчислюється таким рівнянням:S W = c ∑ i = 1 S i = c ∑ i = 1 n ∑ x ∈ D i ( x - m i )
2.2 Матриця розсіювання між класом обчислюється наступним рівнянням: де - загальне середнє значення.S B = c ∑ i = 1 n i ( m i - m ) ( m i - m ) T m
Крок 3. Розв’язування узагальненої задачі власного значення для матриці
3.1. Сортування власних векторів шляхом зменшення власних значень
3.2. Вибір k власних векторів з найбільшими власними значеннями. Об'єднання двох власних векторів з найвищими власними значеннями для побудови нашої -вимірної матриці власних векторівW
Крок 5: Перетворення зразків на новий підпростір