# FAQ: Linear Regression - Put it Together

This community-built FAQ covers the “Put it Together” exercise from the lesson “Linear Regression”.

Paths and Courses
This exercise can be found in the following Codecademy content:

## Join the Discussion. Help a fellow learner on their journey.

Agree with a comment or answer? Like () to up-vote the contribution!

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

Hi guys,
There is something I haven’t understood about the exercise: in the `step_gradient` function, the next guesses are defined by `b=b_current - 0.01*b_gradient`. As far as I know, the gradient is a slope, so how does an x-axis value minus a slope produce another x-axis value? Thanks for your reply!

1 Like

In Step 4 of this lesson, the step_gradient function is called like this:

b, m = step_gradient(months, revenue, b, m)

Why is that?

Generally, gradient represents the direction in which the function increases fastest. By adding to `(b, m)` a vector in the direction opposite to the gradient, we can expect that the function (loss) will be smaller. (However, if the step is too large, it may go past the point of minimizing the loss, so it is adjusted by the learning rate.)

In Python, we can assign values to multiple variables by separating variables with commas.

``````a, b = 1, 2

print(a)  # 1
print(b)  # 2
``````

In Step 3, the return value of the function `step_gradient()` is set as a pair (tuple or list), so it’s components are assigned to `b` and `m` in one line.