Привет, любопытные !!

Надеюсь, вы в безопасности и у вас все хорошо :)

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

О приложении

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

Обзор задачи

👉 Извлеките образ контейнера Docker из образа CentOS из DockerHub и создайте новый контейнер.

👉 Установите программное обеспечение Python в верхнюю часть контейнера докеров.

👉 В контейнере создайте модель машинного обучения.

Описание задачи

Прежде всего, давайте узнаем, что такое машинное обучение и Docker.

Машинное обучение

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

Докер

Docker - это набор продуктов «платформа как услуга» (PaaS), которые используют виртуализацию на уровне ОС для доставки программного обеспечения в пакетах, называемых контейнерами. Контейнеры изолированы друг от друга и объединяют собственное программное обеспечение, библиотеки и файлы конфигурации; они могут общаться друг с другом через четко определенные каналы. Поскольку все контейнеры совместно используют службы одного ядра операционной системы, они используют меньше ресурсов, чем виртуальные машины.

А теперь приступим к задаче !!

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

mkdir <folder_name>
cd <folder_name>

Здесь я создал рабочее пространство с именем ML_Task1. Я собираюсь поместить весь код только в этот каталог.

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

О наборе данных

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

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

Теперь самое интересное: я собираюсь обучить эту модель внутри контейнера Docker.

Итак, здесь я буду использовать Dockerfile для запуска контейнера.

DockerFile

Docker может автоматически создавать образы, читая инструкции из Dockerfile. Dockerfile - это текстовый документ, содержащий все команды, которые пользователь может вызвать в командной строке для сборки изображения. Используя docker build, пользователи могут создать автоматизированную сборку, которая последовательно выполняет несколько инструкций командной строки.

Вот мой Dockerfile, который я буду использовать

From centos
RUN yum install python3 -y 
RUN pip3 install pandas scikit-learn
COPY dataset/* /home/
CMD python3 /home/model_train.py

Этот Dockerfile сначала извлекает образ Centos из DockerHub. Затем он установит Python Interpreter, поскольку я написал код машинного обучения на Python, поэтому нам также понадобятся некоторые модули Python, такие как «pandas» и «scikit-learn», чтобы он установил их с команда pip3.

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

Теперь давайте посмотрим на код машинного обучения !! Написано на языке Python.

Теперь соберите образ с помощью Dockerfile, чтобы мы могли использовать этот образ для запуска контейнера.

docker build -t <image_name> <Path_of_Dockerfile>

Теперь нам просто нужно запустить одну команду, и она запустит операционную систему, обучит модель и запустит приложение всего за 1-2 секунды.

docker run -it <image_name>

Надеюсь, эта статья окажется для вас полезной!

Вот мой репозиторий Github. Если у вас есть сомнения, вы можете связаться со мной в LinkedIn.

Спасибо за чтение :)