入門機器學習實用指南Hands-On Machine Learning with Scikit-Learn & TensorFlow (第四章)

我對本書中的代碼做了詳盡的註釋,放到了我的github,star我哦(✪ω✪)
本系列主要針對一些閱讀本書過程中遇到的問題進行解答,不羅列知識點。如果遇到其他問題歡迎私信我。文章最後會對本章節內容做總結。

Q:凸函數與凹函數
原文:線性迴歸模型的MSE成本函數恰好是個凸函數

凸函數 convex function凹函數 concave function可以按以下方法來記憶凸函數和凹函數,凸函數曲線上方的圖形是往下凸的,所以稱之爲凸函數;凹函數上方圖形是往下凹的,所以稱之爲凹函數。只要記得和中文裏的凹凸是相反的就可以了。
更多記憶方法參考知乎

Q:代碼
原文
m = 100
X = 6 * np.random.rand(m, 1) - 3
y = 0.5 * X**2 + X + 2 + np.random.randn(m, 1)

需要注意這裏一句是np.random.rand():生成均勻分佈的僞隨機數,介於(0,1)之間;
另一句是np.random.randn(),生成正態分佈的僞隨機數。

Q:偏差/方差權衡

https://blog.csdn.net/ChenVast/article/details/79257387
當訓練集和測試集的誤差收斂但卻很高時,爲高偏差。
左上角的偏差很高,訓練集和驗證集的準確率都很低,很可能是欠擬合。
我們可以增加模型參數,比如,構建更多的特徵,減小正則項。
此時通過增加數據量是不起作用的。

當訓練集和測試集的誤差之間有大的差距時,爲高方差。
當訓練集的準確率比其他獨立數據集上的測試結果的準確率要高時,一般都是過擬合。
右上角方差很高,訓練集和驗證集的準確率相差太多,應該是過擬合。
我們可以增大訓練集,降低模型複雜度,增大正則項,或者通過特徵選擇減少特徵數。

理想情況是是找到偏差和方差都很小的情況,即收斂且誤差較小;偏差和方差相互影響,爲此需要找到偏差與方差之間的權衡,故稱之偏差/方差權衡。
轉自Alice熹愛學習
注意這裏的學習曲線和書中的學習曲線的區別,此處縱座標是準確率,繪出的圖線一般訓練集在上,測試集在下,且曲線越高模型預測越好;書中的圖形縱座標是RMSE,性質與此處相反。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章