A Guide to A Beginner Machine Learning Model.
Prerequisites:
- Basic Understanding of Python
Make sure you have the following installed on your device
- Python (the programming language)
- Tensorflow
- Mathplotlib(optional)
- Numpy(optional)
What will our Model do?
The model we will be constructing is one of the most basic models and we will be using it to predict the y coordinate of a line
First we will start with out imports
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
Next Lets define our data
Our training Data - the data our model will train on
x_points = np.array([3, 5, 7, 9])
y_points = np.array([6, 10, 14, 18])
Our Test Data - this is the x axis we will be predicting
test_x = np.array([2, 4, 7, 20])
Building our Model
First we have to define our model - for this blog we will be using a premade model for simplicity
model = tf.keras.Sequential([
tf.keras.layers.Dense(units=1, input_shape=[1])
])
Compiling our Model
Next we need to build our model
Optimizer is build in so we don't need to worry about that
learn more about loss
here
model.compile(optimizer='sgd', loss='mean_squared_error')
Training the Model
We want to train out model on the training data so it can predict on the test data
Epochs is how many times the model trains on our data. Typically this varies for the dataset but in this case we are using 100
model.fit(x_points, y_points, epochs=100)
Testing the Model
We now have our model built now we need to test it
This is predicting on the test X data we defined earlier
test_y = model.predict(test_x)
Plotting Our Data
Now that we have our predicted model we can plot our data using mathplotlib
plt.plot(x_points, y_points, label='Train Data')
plt.plot(test_x, test_y, label='Test Data')
plt.legend()
plt.show()
This Graph will Show
Train Data:
x [3, 5, 7, 9]
y [6, 10, 14, 18]
Test Data
x [2, 4, 7, 20]
Model Predicted
y [ 4.0757785, 8.044292, 13.997064, 39.792404 ]
Actual
y [4, 8, 14, 40]
It is important to note that machine learning does not typically have exact answers. It deals in probability and as you can see it is very close to the actual data
Recommended Course to Learn More
https://developers.google.com/machine-learning/crash-course