Logo

dev-resources.site

for different kinds of informations.

Using MindsDB for Time Series Forecasting - Honey Production in the USA

Published at
10/25/2022
Categories
mindsdb
hacktoberfest
ai
Author
narayanadithya
Categories
3 categories in total
mindsdb
open
hacktoberfest
open
ai
open
Author
14 person written this
narayanadithya
open
Using MindsDB for Time Series Forecasting - Honey Production in the USA

The Pre-Requisites

The very first thing to do is to create your 30-day free to use Mindsdb account. Once this is done you are all set to explore and understand the MindsDB way of building machine learning models.

About MindsDB

MindsDB in simple words is basically machine learning but in the database. The usual machine learning pipeline involves:

  1. Loading Data
  2. Pre-Processing Data
  3. Fitting Data
  4. Fine Tuning the Model
  5. Predicting the Results

With MindsDB the entire pipeline is shrunk to:

  1. Connect to Data
  2. Describe the Predictor
  3. Predict The Data

The entire ETL Pipeline has been encapsulated by MindsDB thus allowing a very SQL Like, Low Code Paradigm for Machine Learning.

About the Dataset

For this tutorial we will be using the Honey Production in the USA Dataset from Kaggle.
The dataset consists of honey production values for different states from the year 1998 to 2012. There are several other columns in the dataset like colony count, yield per colony etc. Since the aim of the tutorial is to just forecast the total production of honey statewise we will be only needing the state, year and totalprod columns. We can ignore the rest of the columns.

Using MindsDB For TimeSeries

Uploading the Data

After you have logged in on the MindsDB website, you'll see the MindsDB Editor.
MindsDB Editor

Click on the Add Data button on the navbar. Then Select Files and proceed to upload the honeyproduction.csv which you will get after downloading and extracting the zip file from Kaggle. Name the table as honey_prod.
Upload File
Click on save and continue.
We have uploaded the data into the MindsDB database.

Playing Around with the Data

We have uploaded the data.
How do we see it ?
How do we know where the data is ?
What is the piece of code you see after uploading the dataset?

MindsDB stores files uploaded in a files database. Each file uploaded is a tabel. Inroder to see the list of files that you have uploaded you can simply write and execute the following query

SHOW TABLES FROM files;  
Enter fullscreen mode Exit fullscreen mode

Uploaded Files

Now that we have found our table. We can try to query the first 10 rows of our table.

SELECT * FROM files.honey_prod LIMIT 10;
Enter fullscreen mode Exit fullscreen mode

Data

Hurrayyy🥳🥳🥳!!!, Our Table exists and now we can move on to the main part of the tutorial....

Creating the PREDICTOR

In MindsDB creating the model is as simple as running the PREDICTOR command.

Since we are working on a TimeSeries application we will be using the following command:

CREATE PREDICTOR mindsdb.<name-of-model>
FROM files
    (<DATA-ON-WHICH-MODEL-HAS-TO-BE-TRAINED>)
PREDICT <COLUMN-TO-BE-FORECASTED>
ORDER BY <TIME-COLUMN>
GROUP BY <INDEPENDENT_VARIABLE1>
GROUP BY <INDEPENDENT_VARIABLE1>
...

WINDOW <Use Previous x years of data for prediction>
HORIZON <Predict for the next k years>

Enter fullscreen mode Exit fullscreen mode

I believe the not so official syntax that I have given is pretty self-explanatory. But if you feel confused don't worry the actual query will be more clear and even if that doesn't help check out the youtube tutorial link at the end of this article.

Create Honey Predictor Command:

CREATE PREDICTOR mindsdb.honey_prod_predictor
FROM files
  ( SELECT state, totalprod, year FROM honey_prod)
PREDICT totalprod
ORDER BY year
GROUP BY state

WINDOW 12
HORIZON 2
Enter fullscreen mode Exit fullscreen mode

Create Predictor

In simple words the predictor will be trained using the columns state, totalprod and year based on the past 12(WINDOW) years values and the model will be built for the forecasting of totalprod for the next 4(HORIZON) years.

Once you execute the query you can check the status of the model using the command:

SELECT * FROM predictors;
Enter fullscreen mode Exit fullscreen mode

Check Predictor Status

Wait for the model to finish training.......

Fin Train

And just like that you have created a machine learning model.

Time To Forecast

Forecasting is basically done using the following command:

SELECT m.year AS Year, m.totalprod AS Forecast
FROM mindsdb.honey_prod_predictor AS m 
JOIN files.honey_prod AS t
WHERE t.year > LATEST 
AND t.state = 'AL' ;
Enter fullscreen mode Exit fullscreen mode

The query can seem intimidating at first, but it is quite straightforward. So initially you have the columns you want in the output called off the predictor which is m. The join is required to fill in the dependent variable state and the year from which the forecast starts. LATEST is a keyword that represents the latest year in the dataset. Hence the predictions will be made 2 years from that year which is 2 years from 2012 i.e., 2013 and 2014.

Forecast

We can see the production value that has been forecasted for the years 2013, 2014. To predict for a different state it is as easy as replacing the state value and running the command again.

Conclusion

We have seen how easy it is to create a machine learning model from scratch using MindsDB. If you are much used to code-along tutorials I would recommend you to checkout my channel here

Next Steps

Check out the following:

Interested in being a part of MindsDB?
Join the MindsDB Slack

mindsdb Article's
30 articles in total
Favicon
What is a Mind
Favicon
Mind Your Manners: How Politeness Can Make AI Smarter
Favicon
AutoGenius: AI-Powered Car Valuation and Trading Assistant
Favicon
How to build your Developer Portfolio with MindsDB: The symbiotic relationship between developers and Opensource in 2024.
Favicon
Deploying a MindsDB-powered PostgreSQL database on Vercel
Favicon
AI-Powered Selection of Asset Management Companies using MindsDB and LlamaIndex
Favicon
Using Large Language Models inside your database with MindsDB
Favicon
Measure Customer Support Sentiment Analysis with GPT, Airbyte and MindsDB
Favicon
Harnessing the Dual LLM Pattern for Prompt Security with MindsDB
Favicon
Unveiling the Dark Side of AI: How Prompt Hacking Can Sabotage Your AI Systems
Favicon
How to add AI image generation to your application
Favicon
Introducing MindsDB Playground: Your all-in-one MindsDB Companion App
Favicon
How to Make a Gmail Bot with a persona using OpenAI GPT and MindsDB
Favicon
Tutorial to Predict the Type of Glass using MongoDB
Favicon
Tutorial to Predict the Rating of Cars using Mindsdb and MongoDB
Favicon
Tutorial to Predict Gold Prices using Mindsdb and MongoDB
Favicon
How Developers should take advantage of MindsDB's Integration with OpenAI Chat GPT-3
Favicon
Tutorial to Predict the Energy Usage using MindsDB and MongoDB
Favicon
Extract Insights from Text Data inside Databases using OpenAI GPT-3 and MindsDB Integration
Favicon
Classify and label text in your database with Hugging Face and MindsDB integration
Favicon
How to predict purchase intent using SQL
Favicon
Everything You Need to Know about Open-Source Predictive Analytics Platform MindsDB
Favicon
Predicting gold prices with MindsDB and MongoDB
Favicon
Using MindsDB for Time Series Forecasting - Honey Production in the USA
Favicon
Predict Diamond prices with SQL Alchemy and MindsDB
Favicon
Tutorial to Predict the Weather Using MindsDB and MongoDB
Favicon
Predicting Environment Impact of Food Production caused by C02 Emission
Favicon
Predicting & Visualizing Gas Prices with MindsDB and Tableau
Favicon
Predicting & Visualizing Petroleum Production with MindsDB and Tableau
Favicon
Tutorial to Predict the Genre of Books using MindsDB [Mongo API]

Featured ones: