https://github.com/rooftitoanggoro/Pharmacy_ML_Process

Проблемы бизнеса:

  1. Почему нам нужно решить эту проблему?
  • Фармацевтическая промышленность в Индонезии быстро растет, и существует широкий спектр лекарств, доступных для распространения по различным каналам. Однако прогнозирование потенциальной прибыли каждого лекарства, продаваемого в Индонезии, может быть сложной задачей из-за разнообразия географических и региональных различий. Поэтому крайне важно использовать методы машинного обучения для анализа данных о продажах и выявления факторов, влияющих на потенциальную прибыль каждого лекарства. Решая эту проблему, мы можем предоставить ценную информацию заинтересованным сторонам в фармацевтической промышленности и способствовать ее росту в Индонезии.

2. Какова ваша цель?

  • Цель этого проекта — спрогнозировать потенциальную прибыль от каждого лекарства, продаваемого в Индонезии, с учетом различных факторов, таких как каналы сбыта и региональные различия. Мы стремимся использовать методы машинного обучения, в частности алгоритмы дерева решений и случайного леса, для анализа данных о продажах и определения ключевых факторов, влияющих на потенциальную прибыль каждого лекарства. Предоставляя всесторонний анализ, мы надеемся внести свой вклад в рост фармацевтической промышленности в Индонезии и предоставить ценную информацию для заинтересованных сторон на рынке.

Подход высокого уровня:

  1. Предлагаемый вами подход к решению этой проблемы:
  • Предлагаемый подход к решению этой проблемы заключается в использовании методов машинного обучения, в частности алгоритмов дерева решений и случайного леса. Мы начнем со сбора и очистки данных о продажах, включая информацию о типе лекарства, каналах распространения и региональных различиях. Затем мы предварительно обработаем данные, включая разработку функций и нормализацию данных, чтобы подготовить их для моделей машинного обучения. Мы будем использовать дерево решений и алгоритмы случайного леса для обучения моделей, их проверки и оптимизации их гиперпараметров. Наконец, мы оценим производительность моделей и сравним результаты, полученные при использовании этих двух методов машинного обучения, чтобы глубже понять факторы, влияющие на потенциальную прибыль каждого лекарства, продаваемого в Индонезии.

2. Краткое объяснение того, что мы собираемся сделать:

  • Мы собираемся создать репозиторий с темой «Прогнозирование прибыли от продаж аптек в Индонезии», используя процесс машинного обучения. Репозиторий будет содержать код и документацию, необходимые для воспроизведения нашего анализа и результатов. В частности, мы создадим блокнот Jupyter, который продемонстрирует, как собирать, очищать, предварительно обрабатывать и анализировать данные о продажах с использованием дерева решений и алгоритмов случайного леса. Мы также включим файл README, в котором содержится обзор проекта, его целей и инструкций по запуску блокнота Jupyter. Наконец, мы опубликуем репозиторий на GitHub, чтобы сделать его общедоступным и общедоступным.

Цели и успех:

  1. Какую метрику вы собираетесь использовать для измерения производительности проекта?
  • Показатели, которые мы собираемся использовать для измерения производительности проекта, — это средняя абсолютная ошибка (MAE).

2. Краткое объяснение ваших показателей и почему вы их используете:

  • Средняя абсолютная ошибка (MAE) измеряет среднюю абсолютную разницу между прогнозируемыми и фактическими значениями. Это дает нам представление о том, насколько далеки прогнозы от фактических значений. Мы используем MAE, так как это простая и удобная для интерпретации метрика, которая обеспечивает меру точности модели.

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

  • Для MAE более низкое значение указывает на лучшую производительность модели. Если MAE высокий, это означает, что прогнозы модели далеки от фактических значений. Успешная модель должна иметь низкое значение MAE, указывающее на точные прогнозы.

Ключевые решения:

  1. Какой набор данных вы собираетесь использовать?
  • Мы будем использовать образец внутреннего набора данных компании с маскирующими данными.

2. Краткое объяснение вашего набора данных:

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

3. Откуда это?

  • Набор данных поступает из внутренней базы данных компании и замаскирован для защиты конфиденциальной информации.

4. Какой алгоритм вы собираетесь использовать?

  • Мы будем использовать два алгоритма машинного обучения, «Дерево решений» и «Случайный лес», чтобы предсказать потенциальную прибыль каждого лекарства, проданного в Индонезии.

5. Краткое объяснение вашего алгоритма:

  • Дерево решений — это контролируемый алгоритм обучения, который строит древовидную модель решений и их возможных последствий. Он разбивает набор данных на все более мелкие подмножества, в то время как соответствующее дерево решений постепенно разрабатывается. Дерево решений может использоваться для задач классификации и регрессии и часто используется для выбора признаков.
  • Случайный лес — это ансамблевый метод обучения, который объединяет несколько деревьев решений для создания более надежной модели. Он работает, строя несколько деревьев решений для разных подвыборок набора данных, а затем объединяя их результаты. Основное преимущество использования случайного леса заключается в том, что он может уменьшить дисперсию модели и повысить ее точность.

Ключевые потоки:

Ниже вы можете найти ключевые потоки диаграммы:

Подготовка блок-схемы (data_pipeline.py) — зеленый

Предварительная обработка блок-схемы и проектирование функций (preprocessing.py) — красный

Блок-схема моделирования и оценки (modeling.py) — синий

  1. Подготовка блок-схемы (data_pipeline.py)

а. Мы создаем функцию для чтения необработанного набора данных и сохранения его в файле raw_dataset.pkl.

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

в. разделить входные выходные данные на несколько данных pkl, на поезде, действительных и тестовых

2. Подготовка блок-схемы (data_pipeline.py) — зеленый

а. После того, как мы добавим данные, теперь перейдем к предварительной обработке со списком процессов ниже:

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

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

3. Блок-схема моделирования и оценки (modeling.py) — синий

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

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

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

Готовность к запуску:

Контрольный список готовности к запуску:

Сбор данных: убедитесь, что процесс сбора данных завершен, а данные очищены и предварительно обработаны.

Проверка кода. Просмотрите код и убедитесь, что он работает правильно и эффективно.

Проверка модели: проверьте точность и производительность модели на тестовых данных.

Документация. Убедитесь, что документация проекта полная и актуальная, включая файл README и блокнот Jupyter.

Публикация репозитория: опубликуйте репозиторий на GitHub и сделайте его общедоступным.

Хронология проекта:

Сбор и предварительная обработка данных (1 неделя)
 – Сбор и очистка данных о продажах.
 – Предварительная обработка данных, включая разработку функций и нормализацию данных.
 – разделение данных на наборы для обучения, проверки и тестирования.
- Сохраните чистые данные в документе pkl

Обучение и проверка модели (2 недели)
 – Обучение дерева решений и моделей случайного леса на обучающих данных
 – Оценка производительности моделей с использованием данных проверки
 – Настройка гиперпараметров модели с помощью поиска по сетке
 – оцените производительность настроенных моделей на тестовых данных.

Публикация документации и репозитория (1 неделя)
— Создайте блокнот Jupyter, демонстрирующий рабочий процесс проекта
— Напишите файл README с описанием целей проекта, данных, используемых алгоритмов и инструкциями по запуску кода
— опубликовать репозиторий на GitHub

Общий срок: 4 недели

Артефакты:

Конвейер данных: сценарий, который считывает необработанные данные и сохраняет их в файле pkl, проверяет отсутствующие значения и разбивает данные на обучающие, проверочные и тестовые наборы.

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

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

Оценка: скрипт, который оценивает производительность выбранной модели на тестовых данных и вычисляет среднюю абсолютную ошибку (MAE).

Блокнот Jupyter: блокнот, демонстрирующий рабочий процесс проекта и представляющий результаты, включая исследование данных, предварительную обработку, моделирование и оценку.

Файл README: файл, содержащий обзор целей проекта, данных, используемых алгоритмов и инструкции по запуску кода.

Пример данных: образец внутреннего набора данных компании с маскирующими данными.

Библиотеки: библиотеки Python, такие как pandas, numpy, scikit-learn, matplotlib и seaborn, для манипулирования данными, предварительной обработки, моделирования, оценки и визуализации.

Использованная литература:

  • Внутренние данные компании с маскировкой
  • Курсы по машинному обучению Pacmann
  • Кай Шенкельберг — контролируемое машинное обучение для основанного на знаниях анализа влияния технического обслуживания на прибыльность.

Детальный технический результат: