機器學習——如何評價假設函數h(x)


當你的假設函數有很低的“訓練錯誤”(training error)的時候,它不一定是個好的假設函數

\[{h_\theta }\left( x \right) = {\theta _0} + {\theta _1}x + {\theta _2}{x^2} + {\theta _3}{x^3} + {\theta _4}{x^4}\]

這種現象稱為“過擬合”(overfit),這種情況會對新的數據產生較大的誤差


如何檢查假設函數?

如果可以將假設函數畫出來就可以比較直觀的看出它的問題了,但是如果特征較多就無法畫出來。

通常的做法是:

假設有如下數據集

Size Price
2104 400
1600 330
2400 369
1416 232
3000 540
1985 300
1534 315
1427 199
1380 212
1494 243

 

現在又10組數據,選取其中7個作為訓練集(training set),剩下的三個作為測試集(test set)。一般情況下選取數據的70%作為訓練集,30%作為測試集。

接下來對算法(比如線性回歸)進行訓練和測試

  • 運用訓練集學習得到參數θ(通過最小化代價函數J(θ))
  • 計算測試集誤差Jtest(θ)
  • 對於分類問題可以定義err(hθ(x), y),定義測試誤差(test error)為所有測試樣本誤差的平均值

\[err\left( {{h_\theta }\left( x \right),y} \right) = \left\{ {\begin{array}{*{20}{c}}
1如果h(x)≥0.5,y=0或者h(x)<0.5,y=1\\
0如果h(x)<0.5,y=0或者h(x)≥0.5,y=1
\end{array}} \right.\]

 \[Testerror = \frac{1}{{{m_{test}}}}\sum\limits_{i = 1}^{{m_{test}}} {err\left( {{h_\theta }\left( {x_{test}^{\left( i \right)}} \right),y_{test}^{\left( i \right)}} \right)} \]


免責聲明!

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



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