Здравствуй, умница,

Надеюсь, вы читали мой блог с подробным объяснением методологии PCA.

Сегодня мы увидим, как PCA реализован в Python.

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

Этот набор данных содержит информацию о трех классах вин и 12 различных параметрах, связанных с этими тремя классами. Наша цель - построить модель классификатора, чтобы различать три после выполнения PCA.

Давайте начнем…

Пакеты импорта первого шага.

Давайте сначала импортируем данные.

Далее делим данные на train и test. Для этого я использую функцию train_test_split из sklearn.

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

Здесь мы используем стандартный метод масштабирования (основанный на среднем значении и стандартном отклонении, также называемый нормализацией). Вы также можете использовать масштабирование на основе min-max, которое поддерживается функцией MinMaxScaler() в sklearn.

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

Затем мы используем функцию pca для создания основных компонентов для заданных данных. Всегда лучше начинать с такого количества компонентов, сколько переменных в данных. Затем вы можете понять долю дисперсии, объясняемую компонентами, чтобы сохранить столько компонентов, сколько нам нужно.

Итак, я начинаю с 12 компонентов следующим образом.

На осыпи мы определяем количество компонентов, используя метод локтя. Здесь мы видим, что за пределами 4 компонентов доля объясняемой дисперсии меньше, и, следовательно, мы фиксируем количество компонентов равным 4.

Кроме того, мы можем сделать это, используя таблицу ниже.

Из приведенной выше таблицы видно, что нам нужны четыре компонента, чтобы объяснить 80% изменчивости данных.

Однако для простоты представления я ограничу количество компонентов двумя, то есть для объяснения 56% изменчивости данных.

В приведенном выше коде я ограничил количество компонентов двумя, применил преобразования к данным поезда и тестовым данным и сохранил их в другой переменной.

Теперь я использую эти преобразованные данные для создания моего классификатора — здесь — который основан на логистической регрессии. После этого вы можете использовать любой алгоритм.

Главные компоненты могут объяснить 56% изменчивости данных. Используя эти основные компоненты, прогнозируемые данные выглядят следующим образом. Вы можете видеть, что компоненты способны различать параметры разных классов вин.

В этом посте я провел вас через реализацию PCA в python.

Надеюсь, мои небольшие уроки помогут вам развить свои статистические навыки.

Пожалуйста, дайте мне знать ваши мысли/вопросы в комментариях или напишите мне по адресу [email protected].

Вы также можете связаться со мной через LinkedIn.

Вы можете найти код ниже:

https://gist.github.com/meslymgm/9ff1decaf953eea749d1578182a21e3e