準備開始
點「下一步」後,右邊會逐步畫出記憶體裡的變化。
點「下一步」後,右邊會逐步畫出記憶體裡的變化。
這頁還原 114 年第二次中級科目三第 38 題的 MSE 程式:def 定義函式、y_true - y_pred 逐元素相減、平方、np.sum 加總、除以 n。中級科目三程式題常給這種「指標的 NumPy 實作」片段,問它算的是哪個指標、輸出多少、或哪一行寫錯。常見考法:MSE = Σ(y−ŷ)²/n,對大誤差特別敏感;RMSE 是 MSE 開根號、單位與原值相同;MAE 取絕對值、對離群值穩健。易混點:**2 是逐元素平方;函式要 return 才有值。情境題長相:「y_true=[1,2,3]、y_pred=[1,2,5],MSE 為?」答 (0+0+4)/3≈1.33。
想練情境題與詳解 → AI 學習與考證地圖
y_true - y_pred 算每筆殘差(逐元素),**2 逐元素平方,np.sum 全部相加,再除以筆數 n 取平均,就是均方誤差 MSE。
MSE 平方後平均,重罰大誤差;RMSE 是 MSE 開根號,單位回到原值好解讀;MAE 取絕對值平均,對離群值較不敏感。考題常問「哪個對離群值最敏感」:MSE/RMSE。
直接相減正負會互相抵消;平方讓誤差都是正值、可微分、又放大大誤差,方便用梯度下降最佳化。
Python 函式預設回傳 None;若只在函式裡 print 而沒 return,m = mse(...) 拿到的是 None,後續運算會出錯。這是程式題常見陷阱。
對一維陣列結果相同;np.mean 直接算平均,更簡潔。多維陣列時 len 只取第一維長度,要用 .size 或 np.mean。
def 先建立函式物件;呼叫時建立新的區域命名空間,參數紙條指向傳入的陣列,計算完回傳結果,區域變數隨即釋放。