Введение
MindsDB — это инструмент машинного обучения с открытым исходным кодом, который обеспечивает автоматизированное машинное обучение для вашей базы данных. MindsDB предлагает возможности прогнозирования в вашей базе данных. Tableau позволяет легко и интуитивно визуализировать ваши данные. В этом руководстве мы будем использовать MindsDB для прогнозирования почасового спроса на электроэнергию в США и визуализировать результаты в таблице. Для выполнения этого руководства вам необходимо иметь работающее подключение к MindsDB либо локально, либо через cloud.mindsdb.com. Вы можете использовать это руководство для подключения к облаку MindsDB.
Настройка данных
Подключение данных в виде файла
Выполните следующие действия, чтобы загрузить файл в MindsDB Cloud.
- Войдите в свою учетную запись MindsDB Cloud, чтобы открыть редактор MindsDB.
- Перейдите к
Add data
разделу, нажав кнопкуAdd data
, расположенную в правом верхнем углу.
- Выберите вкладку «Файлы».
- Выберите вариант
Import File
. - Загрузите файл (
Demand for United States Lower 48 (region) hourly - UCT- time.csv
), назовите таблицу, в которой хранятся данные файла (здесь этоUS_Electricity_Demand
), и нажмите кнопкуSave and Continue
.
Как только вы закончите загрузку, вы можете запросить данные напрямую с помощью;
SELECT * FROM files.US_Electricity_Demand LIMIT 10;
Результат будет:
Понимание набора данных
Если вам интересно узнать, как меняется спрос на электроэнергию в США в течение года, или вы хотите узнать, как меняется структура электроэнергии с течением времени, этот набор данных для вас!
Энергия всегда была чем-то само собой разумеющимся, но в последние годы со всеми узкими местами и геополитическими проблемами, которые следовали одна за другой, она становится все более центральной темой.
Вы можете получить набор данных на Kaggle здесь и использовать файл Demand for United States Lower 48 (region) hourly - UCT- time.csv
.
Создание предиктора
Для этого давайте создадим предиктор, который использует дату для предсказания почасового потребления энергии. Вы можете узнать больше о создании предиктора, отметив здесь. Вы можете предсказать модель ряда временных меток, используя следующий синтаксис
CREATE PREDICTOR mindsdb.[predictor_name]
FROM [integration_name]
(SELECT [sequential_column], [partition_column], [other_column], [target_column]
FROM [table_name])
PREDICT [target_column]
ORDER BY [sequential_column]
GROUP BY [partition_column]
WINDOW [int]
HORIZON [int];
CREATE PREDICTOR
: создает предиктор с именемpredictor_name
в таблицеmindsdb
.FROM files
: указывает на таблицу, содержащую данные.PREDICT Close
: определяет столбец для прогнозирования.ORDER BY
: показывает столбец для упорядочивания данных во время обучения.GROUP BY
: Это необязательно. Столбец, по которому группируются строки, образующие раздел. Например, если вы хотите спрогнозировать запасы всех товаров в магазине, вы можете разбить данные поproduct_id
, чтобы каждый отдельныйproduct_id
имел свой собственный временной ряд.WINDOW
: определяет, на сколько строк «оглядываться назад» при создании прогноза.HORIZON
: указывает количество будущих прогнозов. По умолчанию 1.
Давайте продолжим делать прогнозы на нашем наборе данных:
CREATE PREDICTOR mindsdb.hourly_electricity_demand
FROM files (SELECT * FROM US_Electricity_Demand)
PREDICT megawatthours
ORDER by date
-- the target column to be predicted stores one row per quarter
WINDOW 100 -- using data from the 100 rows to make forecasts
HORIZON 20; -- making forecasts for the next years
При выполнении получаем:
Query successfully completed
Статус предиктора
Для завершения обучения прогнозисту может потребоваться несколько минут. Вы можете отслеживать состояние предиктора с помощью этой команды SQL:
SELECT status
FROM mindsdb.predictors
WHERE name='hourly_electricity_demand';
Если мы запустим его сразу после создания предиктора, мы получим такой результат:
+------------+
| status |
+------------+
| generating |
+------------+
Через некоторое время вы получите:
+------------+
| status |
+------------+
| training |
+------------+
И, наконец, это должно быть вашим результатом:
+------------+
| status |
+------------+
| complete |
+------------+
Делать прогнозы
Теперь, когда у нас есть модель прогнозирования, мы можем просто выполнить несколько простых операторов SQL-запроса, чтобы предсказать целевое значение на основе параметров функции:
SELECT date, megawatthours AS `energy_demand` ,energy_demand_explain
FROM mindsdb.hourly_electricity_demand
JOIN files.US_Electricity_Demand
LIMIT 5;
Ожидаемый результат:
Вы также можете проверить точность предиктора с помощью приведенного ниже запроса, чтобы увидеть, как он работает.
SELECT accuracy
FROM mindsdb.predictors
WHERE name = 'hourly_electricity_demand'
Выход:
+------------+
| accuracy |
+------------+
| 0.992 |
+------------+
Оценка точности варьируется от 0 до 1, и в результате модель будет точной в 90% случаев.
Подключение MindsDB к Tableau
Tableau позволяет легко и интуитивно визуализировать ваши данные. В этом уроке мы будем использовать Tableau для создания визуализаций наших прогнозов.
Как подключиться
- Сначала создайте новую книгу в Tableau и откройте вкладку Connectors в окне Connect to Data.
- Нажмите на MySQL
- Введите cloud.mindsdb.com для сервера, 3306 для порта, mindsdb для базы данных, your mindsdb cloud email для имени пользователя, your mindsdb cloud password для пароля и войдите в систему.
Теперь вы подключены, и ваша страница должна выглядеть так:
Визуализация наших данных
Прежде чем вы сможете визуализировать прогнозы в Tableau, вы должны сначала выбрать источник данных. А поскольку прогнозы в этой статье генерируются с использованием оператора SQL, вам потребуется создать собственный SQL-запрос в Tableau для создания источника данных. Сделать это:
- Сначала выберите
New Custom SQL
в левой части окна и используйте приведенный ниже запрос, чтобы сгенерировать потребность в энергии для каждого часа. Вы можете предварительно просмотреть результаты или напрямую загрузить данные в Tableau.
SELECT date, megawatthours AS `energy_demand`
FROM mindsdb.hourly_electricity_demand
JOIN files.US_Electricity_Demand
- Перейдите на вкладку «Лист» и щелкните правой кнопкой мыши Energy_demand и дату, чтобы преобразовать их типы данных в «Число (целое)» и «Дата и время» соответственно. Кроме того, при щелчке правой кнопкой мыши по energy_demand и данным выберите параметр, чтобы преобразовать его в непрерывный показатель.
- Перетащите меру energy_demand на полку строки, а измерение даты — на полку столбца.
Заключение
В этом уроке мы создали собственное облако Mindsdb, загрузили набор данных в интерфейс, создали модель предиктора и визуализировали ее в Tableau.
Получайте удовольствие, пробуя это сами!
- Пометьте репозиторий MindsDB на GitHub.
- Зарегистрируйтесь для получения бесплатной учетной записи MindsDB
- Присоединяйтесь к сообществу MindsDB в Slack или GitHub, чтобы задавать вопросы и делиться своими идеями и мыслями.
Поставьте лайк или оставьте комментарий, если этот урок был полезен