ПЛС-ДА на sklearn: коррелированные признаки

Вопрос или проблема

Существует ли способ извлечь группы признаков, которые вместе показывают высокую нагрузку в каждом LV. Я знаю, что могу извлечь это, углубившись в x_loadings_, но учитывая, что ковариация внутри и между группами максимизирована, интересно, есть ли способ извлечь комбинации признаков, а не отдельные признаки?

Кратко: как получить сильно коррелированные признаки? Можем ли мы определить их по их коэффициентам подгонки?

Вот как я выполняю PLS-DA

from sklearn.cross_decomposition import PLSRegression
plsr=PLSRegression(n_components=2, scale=True)
plsr_fit=plsr.fit(input_data, y)

# x scores
plsr_fit.x_scores_

# x loadings
plrs_fit.x_loadings_

# x weights
plrs_fit.x_weights_

Результаты PCA/PLS трудно интерпретировать, потому что вы не знаете смеси признаков, присутствующих в pc_scores, которые являются результатом уменьшения размерности — и, конечно, при уменьшении размерности вы теряете некоторую информацию (именно то, о чем вы спрашиваете). Единственное, что вы можете сделать (если вас это не интересует), это восстановить исходные данные (из собственных векторов) или посмотрите здесь для компьютерной версии… В любом случае, я считаю, что ответ на ваш вопрос: НЕТ, вы не можете знать, какой набор признаков в основном вносит вклад в ваши наивысшие нагрузки, потому что эта информация уже уменьшена. Хотя – можно посмотреть здесь – если это вас устраивает

Честно говоря, в sklearn PCA объекте с установленным результатом вы можете увидеть его свойства для весов, но лично я не вижу смысла делать уменьшение размерности а затем исследовать (пытаться разложить) компоненты обратно на признаки (потому что у вас есть вес только для определенной точки, а не для всей выборки)

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

Ответ или решение

Теория

PLS-DA (частичный наименьших квадратов – дискриминантный анализ) – это метод анализа данных, часто используемый для поиска отношений между наборами переменных. Он особенно полезен в ситуациях, когда признаки в данных сильно коррелированы друг с другом, поскольку метод уменьшает размерность данных, сохраняя возможные значимые взаимосвязи.

В PLS-DA каждый латентный вектор (LV) является комбинацией исходных признаков, где веса этих признаков определяются таким образом, чтобы максимизировать ковариацию с зависимой переменной ( y ). Отсюда вытекает, что PLS-DA не просто уменьшает размерность данных, а делает это с учетом зависимого переменного.

Тем не менее, из-за того, что PLS-DA концентрируется на уменьшении размерности, теряется часть информации о том, как именно исходные признаки соотносятся с новыми переменными. Это может затруднить выявление групп признаков, которые совместно обладают высокой нагрузкой в каждом латентном векторе.

Пример

Теперь обратимся к примеру использования PLS-DA в scikit-learn, который позволяет получить веса, нагрузки и другие параметры модели для их дальнейшего анализа:

from sklearn.cross_decomposition import PLSRegression

# Создание экземпляра PLS-DA модели
plsr = PLSRegression(n_components=2, scale=True)
# Обучение модели с данными
plsr_fit = plsr.fit(input_data, y)

# Получение x_scores
x_scores = plsr_fit.x_scores_

# Получение x_loadings
x_loadings = plsr_fit.x_loadings_

# Получение x_weights
x_weights = plsr_fit.x_weights_

Применение

Давайте обсудим, как извлечь из этой информации коррелированные группы признаков:

  1. Анализ нагрузок (x_loadings): Массив x_loadings покажет коэффициенты каждого признака в формировании новых компонент. Высокая абсолютная величина коэффициента указывает на то, что данный признак оказывает значимое влияние на соответствующий латентный вектор.

  2. Идентификация групп:

    • Группы признаков с высокими нагрузками в одном и том же латентном векторе могут быть совместно значимыми.
    • Вы можете построить корреляционные круги (иногда называемые biplot), чтобы визуализировать связь признаков и маркеров в новых пространствах компонент.
  3. Исследование ковариационной структуры:

    • Проанализируйте корреляцию между признаками в x_weights и x_scores для понимания того, как загрузка и корреляция связаны с латентными переменными.
  4. Методы кластеризации: Используйте методы кластеризации, такие как иерархическая кластеризация, чтобы дополнительно исследовать группы коррелированных признаков на основании их вкладов в латентные векторы.

  5. Осознание ограничений: Важно отдавать себе отчет, что особенности, которые вносят наибольший вклад в объяснение латентных векторов, могут проявлять себя по-разному в зависимости от масштаба или структуры данных.

Заключение

Несмотря на то что прямое извлечение групп признаков затруднительно из-за природы процесса снижения размерности в PLS-DA, существует ряд методов анализа, которые помогут идентифицировать соответствующие наборы признаков. Эта задача требует комбинирования таких подходов, как анализ нагрузок, визуализация, и статистические методы для понимания структуры данных. Используя возможности PLS-DA в scikit-learn и соответствующие диагностические инструменты, вы сможете более прозрачно поднять уровень вашего анализа данных.

Оцените материал
Добавить комментарий

Капча загружается...