В настоящее время организации используют науку о данных и машинное обучение для решения различных бизнес-задач. Чтобы добиться реального влияния на бизнес, тем более важно, как преодолеть разрыв между конвейером обработки данных и конвейером принятия бизнес-решений.
Результатами пайплайна науки о данных часто являются прогнозы, шаблоны и понимание данных (часто без какого-либо понятия ограничений), но одного этого недостаточно для того, чтобы акционеры могли принимать решения. Результаты науки о данных должны поступать в своего рода канал принятия бизнес-решений; этот канал содержит ограничения, которые моделируют ключевые аспекты бизнеса и улучшения переменных принятия решений.
Например, если вы управляете сетью супермаркетов, ваш пайплайн обработки данных будет прогнозировать ожидаемые продажи. Затем вы возьмете эти входные данные и создадите оптимизированный подход к запасам или стратегию продаж.
В этом посте мы покажем пример использования линейной оптимизации для выбора видео TED для просмотра.
показатель
Введение в линейную оптимизацию
Нерешенные вопросы – создайте список наблюдения для видео TED
Шаг 1. Импортируйте соответствующие пакеты
Шаг 2. Создайте фрейм данных для выступлений на TED
Шаг 3. Поставьте задачу линейной оптимизации.
Шаг 4 - Преобразуйте результаты оптимизации в понятную форму
1Введение в линейную оптимизацию
Среди методов оптимизации симплекс-метод линейной оптимизации является одним из наиболее эффективных методов, а также входит в десятку лучших алгоритмов двадцатого века. Как специалист по науке о данных, важно иметь практические знания по реализации линейной оптимизации, и эта запись в блоге иллюстрирует ее реализацию в оболочке Python PuLP.
Чтобы все было интересно и понятно, мы изучим этот метод оптимизации, применяя его к реальным повседневным задачам. В то же время то, что мы узнали, применимо к множеству бизнес-задач.
2Проблема, которую необходимо решить: создайте список просмотра видео TED
TED — это некоммерческая организация, занимающаяся распространением идей. Основанная в 1984 году, TED объединяет технологии, развлечения и дизайн в формате конференции; сегодня TED охватывает почти все темы на более чем 100 языках — от науки до бизнеса и глобальных проблем. Выступления TED ведут эксперты, знающие и увлеченные своим делом.
Теперь давайте не будем забывать о цели этого сообщения в блоге. Представьте себе такую ситуацию: вы хотите создать список самых популярных выступлений TED для просмотра на основе различных условий (доступное время для просмотра, количество выступлений и т. д.). Давайте посмотрим, как программа Python может помочь нам создавать списки наблюдения наилучшим образом.
Код для этой статьи можно найти здесь. Скриншот моего Jupyter выглядит так:
3Шаг 1. Импортируйте связанные пакеты
PuLP — это бесплатное программное обеспечение с открытым исходным кодом для Python. Он может описывать задачи оптимизации как математические модели. PuLP также может вызывать множество внешних решателей LP (например, CBC, GLPK, CPLEX, Gurobi и т. д.) для решения этой модели, а затем использовать команды Python для управления и отображения решения. По умолчанию решатель CoinMP поставляется вместе с PuLP.
4Шаг 2. Создайте фрейм данных для выступлений на TED
Загрузите набор данных всех выступлений TED (2550) с Kaggle и запишите их во фрейм данных. Выбирается подмножество соответствующих столбцов, и результирующий набор данных должен содержать следующие данные: индекс выступления, название выступления, название мероприятия TED, продолжительность выступления (в минутах), количество просмотров (представляющее популярность разговор)
5Шаг 3: Настройте задачу линейной оптимизации
Начните с определения объекта LP; переменные задачи создаются для управления постановкой задачи.
Шаг 3.1: Создайте переменные решения
Переберите каждую строку фрейма данных, чтобы создать переменные решения, чтобы каждая речь стала переменной решения. Поскольку каждая презентация может быть выбрана или не выбрана как часть окончательного списка просмотра, переменные решения являются бинарными по своей природе (1 = выбрано, 0 = не выбрано).
Шаг 3.2: Определите целевую функцию
Целевая функция представляет собой сумму всех строк для каждого количества просмотров лекций. Эти просмотры действуют как прокси для популярности разговора, поэтому, по сути, мы пытаемся максимизировать просмотры (популярность), выбирая соответствующий разговор (переменная решения).
Шаг 3.3: Определите ограничения
В этой задаче у нас есть два ограничения:
а) У нас есть только фиксированное общее время, которое можно выделить для просмотра выступлений.
б) Мы не хотим смотреть больше определенного количества выступлений, чтобы избежать информационной перегрузки
Шаг 3.4: Окончательный формат (для формулировки проблемы)
Окончательный формат сформулированного вопроса записывается в файл .lp. Здесь перечислены целевая функция, переменные решения и ограничения, налагаемые на проблему.
Шаг 3.5: Фактическая оптимизация
Настоящая оптимизация представляет собой строку кода под названием «prob.solve». Вставьте поясняющее утверждение, чтобы определить, были ли получены наилучшие результаты для решения проблемы.
6Шаг 4. Преобразуйте результаты оптимизации в понятную форму
Результаты оптимизации, указывающие конкретные переменные решения (лекции), выбранные для максимизации результатов, должны быть преобразованы в формат списка наблюдения следующим образом:
7Эпилог
В этой статье показано, как воспользоваться преимуществами методов линейной оптимизации, доступных в Python, для решения повседневной проблемы создания списка просмотра видео. Изученные концепции в равной степени применимы к более сложным бизнес-ситуациям, например, с тысячами переменных решений или множеством различных ограничений.
Каждому практикующему специалисту в области обработки данных необходимо добавить «методы оптимизации» к своим знаниям, чтобы использовать расширенную аналитику для решения реальных бизнес-задач. Эта статья призвана помочь вам сделать первые шаги в этом направлении.
Отказ от ответственности: все переведенные статьи предназначены для технического распространения и обмена знаниями, а не для коммерческого использования. Автор оригинала: Картикеян Санкаран