線性回歸中出現錯誤:
TypeError Traceback (most recent call last)
<ipython-input-23-444c0fe3ed1c> in <module> 11 if __name__ == "__main__": 12 draw(x_train,y_train) ---> 13 w,b = fit(x_train,y_train) 14 print(w,b) 15 fit_line(w,b) TypeError: 報錯的原因是函數返回值得數量不一致,查看函數返回值數量和調用函數時接收返回值的數量是不是一致,修改一致即可
錯誤源碼如下:
def fit(x_train,y_train):
size = len(x_train)
numerator = 0
denominator = 0
for i in range(size):
numerator += (x_train[i] - np.mean(x_train))*(y_train[i] - np.mean(y_train))
denominator += (x_train[i] - np.mean(x_train))**2
w = numerator/denominator
b = np.mean(y_train) -w*np.mean(x_train)
。。。
if __name__ == "__main__":
draw(x_train,y_train)
w,b = fit(x_train,y_train)
print(w,b)
fit_line(w,b)
print(predict(15000,w,b))
解決方法:報錯意思是函數返回值得數量不一致
修改代碼:
def fit(x_train,y_train):
size = len(x_train)
numerator = 0
denominator = 0
for i in range(size):
numerator += (x_train[i] - np.mean(x_train))*(y_train[i] - np.mean(y_train))
denominator += (x_train[i] - np.mean(x_train))**2
w = numerator/denominator
b = np.mean(y_train) -w*np.mean(x_train)
##添加return返回即可解決
return w,b

