BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс по MLOps и Data Science (ML, AI) » Анализ главных компонентов в машинном обучении

Анализ главных компонентов в машинном обучении

Анализ главных компонентов (PCA) – это алгоритм уменьшения размерности. PCA – один из самых простых и интуитивно понятных способов уменьшить размеры набора данных. В этой статье я покажу вам анализ основных компонентов в машинном обучении и его реализацию с использованием Python.

 

Анализ главных компонентов

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

Он определяет ось, которая представляет наибольшую вариативность обучающих данных. Затем он находит вторую ось, которая ортогональна первой оси, и представляет наибольшую величину оставшейся дисперсии.

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

 

Виды PCA

Есть четыре метода реализации PCA:

  1. Стандартный PCA: Стандартный PCA – это версия по умолчанию, но она работает только в том случае, если данные умещаются в памяти.
  2. Инкрементный PCA: инкрементный PCA полезен для больших наборов данных, которые не помещаются в памяти стандартного PCA, но он медленнее, чем обычный PCA, поэтому, если данные умещаются в памяти, вы должны использовать стандартный PCA. Инкрементальный PCA полезен для онлайн-задач, когда вам нужно на лету уменьшать размеры набора данных каждый раз, когда приходит новая выборка данных.
  3. Рандомизированный PCA. Рандомизированный PCA очень полезен, когда вы хотите резко уменьшить размерность, и чтобы набор данных умещался в памяти. В таких случаях он работает быстрее, чем стандартный анализ главных компонент.
  4. Kernal PCA: Kernal PCA предпочтительнее, только если набор данных является нелинейным.

 

Анализ главных компонентов с использованием Python

Чтобы реализовать анализ основных компонентов с помощью Python, мы можем использовать класс PCA, предоставляемый библиотекой Scikit-Learn на Python. Вот как мы можем реализовать анализ главных компонентов с помощью Python, чтобы уменьшить размерность данных:

 

import numpy as np
np.random.seed(4)
m = 60
w1, w2 = 0.1, 0.3
noise = 0.1

angles = np.random.rand(m) * 3 * np.pi / 2 - 0.5
X = np.empty((m, 3))
from sklearn.decomposition import PCA

pca = PCA(n_components = 2)
X2D = pca.fit_transform(X)
print(X2D)

 

Результат:

 [[-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79207044e+256]

 [-1.31210990e+275 -1.79130276e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275  5.25933599e+257]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -2.90503278e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79147236e+256]

 [-1.31210990e+275 -1.79166311e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205612e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275  5.25908783e+257]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79165620e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205511e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -3.71913271e+256]

 [-1.31210990e+275 -1.79116717e+256]

 [-1.31210990e+275 -1.79205612e+256]

 [ 7.74144843e+276 -1.02176393e+241]

 [-1.31210990e+275 -1.79205512e+256]

 [-1.31210990e+275 -1.79205512e+256]]

 

При реализации PCA вы должны знать, что этот алгоритм предполагает, что набор данных сосредоточен вокруг источника. Класс PCA, предоставляемый scikit-learn, заботится о центрировании данных вокруг источника. Но если вы хотите реализовать его без использования Scikit-learn, не забудьте сначала отцентрировать данные. Вот как можно реализовать анализ основных компонентов с помощью Python без использования библиотеки scikit-learn:

 

X_centered = X - X.mean(axis=0)
U, s, Vt = np.linalg.svd(X_centered)
c1 = Vt.T[:, 0]
c2 = Vt.T[:, 1]

m, n = X.shape

S = np.zeros(X_centered.shape)
S[:n, :n] = np.diag(s)

np.allclose(X_centered, U.dot(S).dot(Vt))
W2 = Vt.T[:, :2]
X2D = X_centered.dot(W2)
print(X2D)

 

Результат:

 [[-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76220325e+256]

 [-1.31210990e+275  1.76143556e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275 -5.26232271e+257]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  2.87516558e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76160516e+256]

 [-1.31210990e+275  1.76179592e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218893e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275 -5.26207455e+257]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76178901e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76222579e+256]

 [-1.31210990e+275  1.76218793e+256]

 [-1.31210990e+275  3.68926551e+256]

 [-1.31210990e+275  1.76129997e+256]

 [-1.31210990e+275  1.76218893e+256]

 [ 7.74144843e+276  1.76216447e+256]

 [-1.31210990e+275  1.76218792e+256]

 [-1.31210990e+275  1.76218792e+256]]

 

Резюме

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

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

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Уменьшение размерности в машинном обучении
Следующая статья →
Автоматический EDA с использованием Python

 

Внедряем AI в бизнес-процессы крупных компаний
От стратегии и инфраструктуры до AI-агентов, интеграций и промышленной эксплуатации.

Подробнее об AI-решениях

 

Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • С объединением компании Savencia Fromage & Dairy и молочного комбината в г.Белебей, одного из лидеров по производству твердых сычужных сыров в России, Savencia выходит на российский рынок не только как импортер, но и как производитель молочной продукции.

  • ЭГИС - международная фармацевтическая компания, основанная в 1907 году в Венгрии. Компания имеет представительства более чем в 60 странах мира, в том числе в России. Компания ЭГИС является одним из ведущих производителей дженерических лекарственных средств в Центральной и Восточной Европе. Её деятельность охватывает все звенья производственно-сбытовой фармацевтической цепочки.

  • Novikov group – первый российский ресторанный холдинг, основанный в 1991 году. Это команда профессионалов под управлением Аркадия Новикова, реализующая широкий спектр услуг в сфере гостеприимства: от проведения event-мероприятия до управления рестораном, от установления стандартов сервиса до контроля качества готовой продукции, от построения бизнес-плана проекта до реализации франшизы.

  • ПАО «Транснефть» – крупнейшая российская нефтепроводная компания. «Транснефть» обеспечивает транспортировку более 85% добываемых в России нефти и нефтепродуктов.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.