# Create your first ML model

Consider the following sets of numbers. Can you see the relationship between them?

X: | -1 | 0 | 1 | 2 | 3 | 4 |

Y: | -2 | 1 | 4 | 7 | 10 | 13 |

As you look at them, you might notice that the value of X is increasing by 1 as you read left to right and the corresponding value of Y is increasing by 3. You probably think that Y equals 3X plus or minus something. Then, you'd probably look at the 0 on X and see that Y is 1, and you'd come up with the relationship Y=3X+1.

That's almost exactly how you would use code to train a model to spot the patterns in the data!

Now, look at the code to do it.

How would you train a neural network to do the equivalent task? Using data! By feeding it with a set of *X*‘s and a set of *Y*‘s, it should be able to figure out the relationship between them.

Code (Python)

import tensorflow as tf import numpy as np from tensorflow import keras model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])]) model.compile(optimizer='sgd', loss='mean_squared_error') xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float) ys = np.array([-2.0, 1.0, 4.0, 7.0, 10.0, 13.0], dtype=float) model.fit(xs, ys, epochs=500) print(model.predict([10.0]))

# Run it in Colaboratory

Browse to https://colab.research.google.com/notebooks/welcome.ipynb

Past in your code and click run.

Output

Epoch 1/500 1/1 [==============================] - 0s 217ms/step - loss: 110.2153 .... Epoch 500/500 1/1 [==============================] - 0s 4ms/step - loss: 2.2867e-06 [[30.995588]]

For 10, the prediction is **30.995588 **

which is close to the expected Y= 3X+1 = 3*10 + 1 = **31**

# Run it Locally

You may need to update pip3, etc...

$pip3 install --user --upgrade pip

Install tensorflow

$ pip3 install --user --upgrade tensorflow

Run code

> python3 <file>

$ python3 simplePredict.py ... Epoch 500/500 1/1 [==============================] - 0s 640us/step - loss: 1.7887e-06 [[31.003902]]

# References

Reference | URL |
---|---|

Intro to Machine Learning (ML Zero to Hero - Part 1) | https://www.youtube.com/watch?v=KNAWp2S3w94&t=308s |

Basic Computer Vision with ML (ML Zero to Hero - Part 2) | https://www.youtube.com/watch?v=bemDFpNooA8 |

Hello World for Machine Learning | https://developers.google.com/codelabs/tensorflow-1-helloworld#2 |

Colaboratory | https://colab.research.google.com/notebooks/welcome.ipynb |