logo
Loading...

MAE 和 MSE的差別 - Cupoy

想問一下對於DAY1第一題卡了很久,一直不知道如何下手的新手有沒有什麼建議呢?因為對於MAE、跟MS...

ml100-4

MAE 和 MSE的差別

2020/03/01 下午 11:19
機器學習共學討論版
MannyWang
觀看數:7
回答數:1
收藏數:0
ml100-4

想問一下對於DAY1第一題卡了很久,一直不知道如何下手的新手有沒有什麼建議呢?

因為對於MAE、跟MSE都沒有概念,就先看了MAE的Sample code。

對於python雖然沒有很熟,但其實每一行程式大致都可以了解。

但不了解的在於其中為何要這麼做?例如MAE的Sample code中有一行程式碼如下。


y = (x_lin + np.random.randn(101) * 5) * w + b


想問的題為什麼要乘以5?再為何要再乘上w跟加b呢?

w跟b的用意為何?


MAE名詞解釋網路上很多,但看完還是沒辦法吸收,有沒有比較好理解的方式呢?


DAY1卡這麼久,說實在蠻灰心的,真個信心被打碎…

回答列表

  • 2020/03/01 下午 11:44
    張維元 (WeiYuan)
    贊同數:4
    不贊同數:1
    留言數:3

    嗨嗨,MannyWang 你好


    從你的問題中看得出來你很盡力在理解題目並且想把問題問好,這個部分值得嘉獎!再來我們一起來看這個題目的脈絡:


    ## 題目在問什麼?


    仿造範例的MAE函數, 自己寫一個MSE函數」,我們先理解 MAE 和 MSE 是什麼東西。他們其實都是一種用來衡量分析結果好壞的一種計算規則,以下這邊是公式:



    其中的 i 指的是所有的點, yi 是所有點的真實資料,y^ 是所有點的預測結果資料。從式子中,我們可以將 MAE 理解成「所有的真實資料預測結果相減取絕對值,總和後取平均」;MSE 則是「所有的真實資料預測結果相減取平方,總和後取平均」。簡單來說,我們可以把「真實資料預測結果相減」想像成是「預測的好不好」,只是用絕對值或是平均的差異而已。


    ### 作業在幹嘛?


    我們知道 MSE 跟 MAE 的公式與具體的意義之後,再回來看程式作業的部分。範例當中的 y 就是我們上面講的 真實資料 , 在這裡我們是用亂數的方法產生一百個點。範例當中的 y_hat 就是我們上面講的 預測結果 , 在這裡我們是用斜直線的公式產生一條斜直線。在這裡,如果你不是很懂 y 跟 y_hat 的產生方式可以先當成是題目已知。那麼接下來,就是用題目給的 y 跟 y_hat  套用到 mean_squared_error 函式,模仿 mean_absolute_error 函式實作出上面的公式。


    ### 那到底該怎麼做這題呢?


    mean_absolute_error 是本題提供的範例:mae = MAE = sum(abs(y - yp)) / len(y) ,用來實作我們前面講的 MAE 公式,你可以關注 abs(y - yp) 這個部分,就是在取絕對值。因此,你只要把原本取絕對值的部分,改成平方就可以完成這個題目。


    如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的 GITHUB 帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃