關於本章編程作業的兩個小問題。
Figure 1 中的圖像和實例中的不一樣,檢查了半天也沒有發現原因,還請大佬們指教。
theta = [1 ; 1];
for i=1:length(lambda_vec)
lambda = lambda_vec(i);
[theta] = trainLinearReg(X, y, lambda);
error_train(i) = linearRegCostFunction(X, y, theta, 0);
error_val (i) = linearRegCostFunction(Xval, yval, theta, 0);
end
當linearRegCostFunction()裏面參數帶lambda的時候,圖形和實例上的不一致。當帶入0的時候,是符合的。我們可以在過擬合,和過擬合後面代價函數中一節中得出這個結論。設置lambda是要在訓練模型的時候防止過擬合,而不是求代價。簡單來說,代價是指預測值與實際值之間的差值平方的和。故,最後兩項中lambda應該帶入0。