日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

岭回归——减少过拟合问题

發布時間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 岭回归——减少过拟合问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是過擬合?
在訓練假設函數模型h時,為了讓假設函數總能很好的擬合樣本特征對應的真實值y,從而使得我們所訓練的假設函數缺乏泛化到新數據樣本能力。

怎樣解決過擬合

過擬合會在變量過多同時過少的訓練時發生,我們有兩個選擇,一是減少特征的數量,二是正則化,今天我們來重點來討論正則化,它通過設置懲罰項讓參數θ足夠小,要讓我們的代價函數足夠小,就要讓θ足夠小,由于θ是特征項前面的系數,這樣就使特征項趨近于零。嶺回歸與Lasso就是通過在代價函數后增加正則化項。

多元線性回歸損失函數:

嶺回歸回歸代價函數:

嶺回歸的原理

我們從矩陣的角度來看。機器學習的核心在在于求解出θ使J(θ)最小。怎樣找到這個θ,經典的做法是使用梯度下降通過多次迭代收斂到全局最小值,我們也可以用標準方程法直接一次性求解θ的最優值。當回歸變量X不是列滿秩時, XX'的行列式接近于0,即接近于奇異,也就是某些列之間的線性相關性比較大時,傳統的最小二乘法就缺乏穩定性,模型的可解釋性降低。因此,為了解決這個問題,需要正則化刪除一些相關性較強特征。

標準方程法:

加上正則化后:

這里,λ>=0是控制收縮量的復雜度參數:λ的值越大,收縮量越大,共線性的影響越來越小。在不斷增大懲罰函數系數的過程中,畫出估計參數0(λ)的變化情況,即為嶺跡。通過嶺跡的形狀來判斷我們是否要剔除掉該特征(例如:嶺跡波動很大,說明該變量參數有共線性)。


步驟:1.首先要對數據進行一些預處理,盡量把保持所有特征在一個范圍內,使用特征縮放和均值歸一化來處理特征值是很有必要的,否則,不同特征的特征值大小是沒有比較性的。
2.其次構建懲罰函數,針對不同的λ,畫出嶺跡圖。
3.根據嶺跡圖,選擇要剔除那些特征。

一個sckit-learn的example

將嶺系數繪制為正則化的函數
本例顯示了共線性對估計量系數的影響。嶺回歸是本例中使用的估計量。 每種顏色表示系數矢量的不同特征,并且這是作為正則化參數的函數顯示的。這個例子還顯示了將嶺回歸應用于高度病態的基質的有用性。對于這樣的矩陣,目標變量的輕微變化會導致計算權重的巨大差異。在這種情況下,設置一定的正則化(λ)來減少這種變化(噪音)是有用的。當λ很大時,正則化效應支配平方損失函數,并且系數趨于零。在路徑的末尾,由于λ趨于零,并且解決方案傾向于普通最小二乘,所以系數顯示出大的振蕩。 在實踐中,需要調整λ以使兩者之間保持平衡。

import numpy as np import matplotlib.pyplot as plt from sklearn import linear_model#X為一個10*10的矩陣 X = 1. / (np.arange(1, 11) + np.arange(0, 10)[:, np.newaxis]) y = np.ones(10)############################################################################## #設置不同的lambda和參數n_lambda = 200 lambda = np.logspace(-10, -2, n_lambda)coefs = [] for a in lambda:ridge = linear_model.Ridge(lambda=a, fit_intercept=False)ridge.fit(X, y)coefs.append(ridge.coef_)# ############################################################################# #顯示繪制結果ax = plt.gca()ax.plot(lambda, coefs) ax.set_xscale('log') ax.set_xlim(ax.get_xlim()[::-1]) # reverse axis plt.xlabel(r'$\lambda$') plt.ylabel('weights') plt.title('Ridge coefficients as a function of the regularization') plt.axis('tight') plt.show()

結果:


感謝您的閱讀,如果您喜歡我的文章,歡迎關注我哦

轉載于:https://www.cnblogs.com/wangshujaun/p/9235872.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的岭回归——减少过拟合问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。