解決:TypeError :cannot unpack non-iterable NoneType object


線性回歸中出現錯誤:

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    

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM