Наука о данных и машинное обучение были названы самыми сексуальными профессиями двадцать первого века, но, несмотря на шумиху, руководители и менеджеры компаний оценили ценность, которую они предоставляют любой организации. Такие ценности, как помощь руководству в принятии обоснованных решений, помощь компаниям в определении целей и задач, увеличение доходов за счет эффективного определения целевой аудитории и найма нужных людей, привели к росту и внедрению этих преимуществ на предприятиях различных отраслей.
Однако развитие компетенции в области науки о данных предполагает изучение не только языков программирования, таких как Python или R, но и принципов таких тем, как арифметика и статистика, что делает кривую обучения немного крутой для будущих и нынешних разработчиков. Помимо индивидуальной кривой обучения, корпорациям придется задействовать множество специалистов для развертывания сквозной модели машинного обучения в производстве. Это повышает сложность разработки и развития систем машинного обучения, особенно для малого и среднего бизнеса.
Для решения этих проблем компания MindsDB разрабатывает платформу, которая позволяет разработчикам с базовыми знаниями языка структурированных запросов (SQL) разрабатывать и внедрять модели, использующие машинное обучение в базах данных. В этом руководстве вы узнаете, как создавать такие модели с помощью SQL-редактора MindsDB.
Начнем с создания учетной записи MindsDB.
Чтобы создать учетную запись;
- Нажмите кнопку
Get Started
на главной странице. - Заполните свои данные в соответствующих полях ниже.
- Вам будет отправлено письмо с просьбой подтвердить ваш адрес электронной почты.
- После подтверждения вы будете направлены в SQL-редактор MindsDB.
Чтобы продолжить этот учебник, вам необходимо загрузить набор данных в MindsDB GUI.
Загрузка набора данных в MindsDB GUI.
- Сначала загрузите zip-файл с набором данных здесь и извлеките его содержимое (файл train.csv).
- Затем нажмите на кнопку
Add Data
в верхней части редактора MindsDB SQL Editor. - Далее выберите вкладку файлы и нажмите кнопку импортировать файл.
- Нажмите кнопку импортировать файл, назовите таблицу
sales_data
. Нажмите кнопку Сохранить и продолжить, чтобы загрузить набор данных. - После успешной загрузки перед вами должен появиться редактор SQL.
Понимание данных.
Каждый набор данных, который вы загружаете в MindsDB, хранится в базе данных files
в виде таблицы. В результате вы должны выполнять свои запросы к таблице в этой базе данных.
Выполните приведенный ниже запрос, чтобы увидеть первые пять записей в таблице sales data
.
SELECT * FROM files.sales_data LIMIT 5;
Этот набор данных содержит восемнадцать столбцов, включая столбец sales. Однако в этом уроке для прогнозирования будут использоваться столбцы дата заказа, дата отгрузки, способ отгрузки, сегмент и категория.
Чтобы увидеть эти столбцы, выполните запрос ниже.
SELECT `Order Date`, `Ship Date`, `Ship Mode`, Segment, Category, Sales FROM files.sales_data
Что означают эти столбцы?
- Дата заказа: Дата, когда продукт был заказан потребителем.
- Дата отгрузки: Дата, когда продукт был отправлен компанией.
- Режим отгрузки: Класс отгрузки, который выбрал потребитель. Здесь доступны четыре класса: В тот же день, Первый класс, Стандартный класс и Второй класс.
- Сегмент: Сегментация продукта. Это поле имеет три возможных значения: потребительский, корпоративный и домашний офис.
- Категория: Категория, к которой относится товар. В этой колонке три значения: мебель, офисные принадлежности и техника.
Построение модели.
Прежде чем приступить к созданию модели, необходимо ознакомиться с этапами ее построения с помощью Python и таких инструментов машинного обучения, как Scikit-Learn и Pandas.
- Очистка данных: Сначала вы очистите данные, удалив дубликаты, заполнив недостающие значения, проверив соответствие типов данных в поле и т.д.
- Исследовательский анализ данных: Далее вы проанализируете данные, чтобы выявить закономерности и тенденции, которые могут иметь отношение к рассматриваемой проблеме.
- Выбор характеристик: Не каждый столбец в наборе данных важен. На этом этапе вы удалите все поля, которые, по вашему мнению, практически не повлияют на эффективность вашей модели машинного обучения.
- Обучение данных: Это когда вы пробуете несколько алгоритмов машинного обучения, чтобы увидеть, какие из них работают лучше всего на ваших данных. Если вы решаете задачу регрессии, вы выбираете алгоритм регрессии; то же самое справедливо для классификации и анализа временных рядов, среди прочего. Не говоря уже о том, что перед обучением данных вы должны убедиться, что все категориальные данные (слова) были преобразованы в числовые данные (числа) и что эти числовые данные были нормализованы.
- Валидация модели: После обучения модели ее тестируют на проверочных и тестовых данных, чтобы определить ее точность. Затем параметры модели настраиваются до получения стабильной и хорошей производительности.
- Развертывание модели: Теперь, когда вы обучили и протестировали свою модель, вы должны преобразовать ее в двоичный файл с помощью Pickle или Joblib, чтобы развернуть ее и сделать прогнозы.
Эти шаги вы бы выполнили, если бы создавали модель с помощью Python и инструментов машинного обучения, но MindsDB заботится об этих шагах и позволяет вам создать модель с помощью SQL-запросов.
Выполните приведенный ниже запрос, чтобы создать модель для таблицы ‘sales data’, используя указанные столбцы.
CREATE PREDICTOR mindsdb.predict_sales
FROM files
(SELECT `Order Date`, `Ship Date`, `Ship Mode`, Segment, Category, Sales FROM sales_data)
PREDICT Sales;
Если все сделано правильно, вы должны увидеть сообщение «Запрос успешно выполнен».
Следующий синтаксис иллюстрирует работу запроса.
CREATE PREDICTOR mindsdb.[predictor_name]
FROM [integration_name]
(SELECT [column_name, ...] FROM [table_name])
PREDICT [target_column];
- [имя предиктора]: Имя модели.
- [имя интеграции]: Имя базы данных, в которой хранится таблица, например, файлы.
- [column name,…]: Поле для предсказания, а также поля для обучения предсказанию.
- [имя таблицы]: Таблица, содержащая столбцы, например, ‘sales data’.
- [целевой столбец]: Столбец для прогнозирования, например, Sales.
Создание прогнозов.
Рассмотрим следующий вопрос для этого раздела.
Клиент заказывает товар 28 марта 2022 года, а товар отправляется 31 марта 2022 года. Товар относится к потребительскому сегменту, категории мебели, и был отправлен первым классом. Сколько стоил этот товар?
Чтобы узнать это, воспользуйтесь приведенным ниже запросом.
Select Sales_confidence, Sales_explain
FROM mindsdb.predict_sales
WHERE `Order Date` = '28/03/2022' AND
`Ship Date` = '31/03/2022'AND
`Ship Mode` = 'First Class'AND
Segment = 'Consumer'AND
Category = 'Funiture';
Используя новую построенную модель, можно сказать, что товар стоит около $201,27. Уровень достоверности модели составляет 76%, или 0,76.
Вот и все. MindsDB упрощает построение моделей машинного обучения.
На этом пока все, ребята. Этот учебник показывает, как MindsDB демократизирует доступ к машинному обучению с помощью SQL, языка, который использовался десятилетиями и остается актуальным и сегодня.
Вы можете связаться с нами в Slack, чтобы задать вопросы о MindsDB, а также поднять вопрос на GitHub, если у вас возникнут проблемы.
Вы можете узнать больше о MindsDB, прочитав документацию.
Спасибо, что прочитали эту статью. Если она вам понравилась, пожалуйста, поделитесь ею.
Чтобы узнать больше о сфере машинного обучения и искусственного интеллекта в целом, вы можете следить за мной в Twitter и LinkedIn, а также оставить комментарий ниже, если у вас есть вопросы. А пока — до свидания.