Вы не определили x
или y
в своем коде, но пытаетесь передать их в plot_regression_line
. Не уверен, если вы предполагали, что когда вы передали GarageArea
и SalePrice
в вашу функцию estimate_coef
, которая отображает их локально на x
, y
, вы думали, что все равно можете ссылаться на них как на это. Однако x
и y
в функции estimate_coef
локально ограничены в функции и не существуют вне ее, поэтому на них нельзя ссылаться.
Предполагая, что вы хотите передать GarageArea
и SalePrice
вместо x
и y
в функцию plot_regression_line
.
import numpy as np
import matplotlib.pyplot as plt
def estimate_coef(x, y):
n = np.size(x)
m_x, m_y = np.mean(x), np.mean(y)
SS_xy = np.sum(y*x) - n*m_y*m_x
SS_xx = np.sum(x*x) - n*m_x*m_x
b_1 = SS_xy / SS_xx
b_0 = m_y - b_1*m_x
return(b_0, b_1)
def plot_regression_line(x, y, b):
plt.scatter(x, y, color = "m", marker = "o", s = 30)
y_pred = b[0] + b[1]*x
plt.plot(x, y_pred, color = "g")
plt.xlabel('x')
plt.ylabel('y')
plt.show()
# Visualize your results
b=estimate_coef(GarageArea,SalePrice)
plot_regression_line(GarageArea,GarageArea,b)
Это предположение, что выdditn определяет x
и y
в вашем коде, но я могу ошибаться, поскольку вы также используете GarageArea
и SalePrice
, которые не определены в коде, который вы опубликовали. Если это не отвечает на ваш вопрос, вы должны отредактировать вопрос и опубликовать трассировку в стеке полученной ошибки.