Scikit-learn
Perceptrons
Gradient Descent
Backpropagation
Numpy
Tensorflow
We'll learn more about those.
Linear regression produces a straight line model from the training data. If the relationship in the training data is not really linear, we'll need to either make adjustments (transform your training data), add some features or use another kind of model.
Linear regression tries to find a 'best fit' line among the training data. If our dataset has some outlying extreme values that don't fit a general pattern, they can have a surprisingly large effect.