 # Reggie_Linear_regression NameError: name 'calculate_all_error' is not defined

Hi !

I receive this (in jupyter notebook) :

‘NameError: name ‘calculate_all_error’ is not defined’

when I run that code :

``````for index in range(len(datapoints)) :
point = datapoints[index]
calculate_all_error(m, b, point)
all_error.append(distance)
for i in range(len(all_error)):
sum_all_error = sum_all_error + all_error[i]
return sum_all_error
``````

In the block above, I have my function and it seems to work (according to the results I get)

``````def calculate_error(m, b, point):
x_point = point
y_point = point
difference = get_y(m,b, x_point) - y_point
distance = abs(difference)
return distance
``````

and I don’t understand what I have to change…

Are you sure the name of function is correct ? ==> calculate_all_error =/= calculate_error.
If that’s not the case maybe you didn’t run block with function inside it ? Then enter the block with calculate_all_error and press Shift+Enter or run option in menu.

2 Likes

Yes, there was this problem thank you, but also others. I fixed them. Now I have a new problem ^^

``````possible_ms = [x/10 for x in range(-100, 101)]
possible_bs = [x/10 for x in range (-200, 201)]
points = [(1, 2), (2, 0), (3, 4), (4, 4), (5, 3)]
best_m = 0
best_b = 0
smallest_error = float("inf")
for m in possible_ms:
for b in possible_bs:
if calculate_all_error (m, b, points) < smallest_error:
best_m = m
best_b = b
smallest_error = calculate_all_error (m, b, points)
return best_m, best_b, smallest_error
``````

It returns
SyntaxError: ‘return’ outside function” wherever I indent return, or
IndentationError: unexpected indent” when I indent it more… and I have no idea of how to resolve this SyntaxError !

SyntaxError: ‘return’ outside function ” --> you can not use return keyword outside functions, it must be inside def function(): block.

1 Like

Aaaah ! Thank you ! It seems obvious now (like always).

2 Likes