1. 程式人生 > >自己造輪子--線性回歸實現遇到的坑

自己造輪子--線性回歸實現遇到的坑

遍歷 source 損失函數 兩個 -- 形狀 叠代器 per 矩陣

1, 生成數據集

2,定義一個數據叠代器,叠代器可以每次遍歷一次所有的數據集

3,模型參數初始化

4,定義線性回歸函數

5,定義損失函數

6,定義優化算法,隨機梯度下降

7,進行模型訓練,輸出叠代之後的loss函數

遇到的幾個問題:

for epoch in epochs 這是一種錯誤的寫法,一定要記得加range函數,integer直接不可以叠代iter

技術分享圖片

為防止廣播,兩個形狀相同的矩陣,y_hat-y.reshape(y_hat) 錯誤,記得最後括號裏面是y_hat.shape

雖然很簡單,但是自己寫和看代碼的感覺完全不一樣

需要學習幾個點,一是叠代函數在python中,還有yield的使用(https://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/)

還有 nd函數的使用(https://www.jianshu.com/p/7faf137775c8)

初始化時候nd.random函數的參數 (https://www.jianshu.com/p/3ea2cf092815)

自己還需要再打一次。

自己造輪子--線性回歸實現遇到的坑