嶺回歸是一種專用於共線性資料分析的有偏估計回歸方法,實質上是一種改良的最小二乘估計法,通過放棄最小二乘法的無偏性,以損失部分資訊、降低精度為代價獲得回歸係數更為符合實際、更可靠的回歸方法,對病態資料的擬合要強於最小二乘法。
乙個簡單的例子
from sklearn.linear_model import ridge
clf = ridge(alpha=.5)
x = [[0,0],[0,0],[1,1]]
y = [0,.1,1]
clf.fit(x,y)
print(clf.coef_)
print(clf.intercept_)
執行結果如下:
例項化ridge
類已經設定了一系列預設的引數,因此clf = ridge()
即可以完成例項化。
但是,了解一下它的引數還是有必要的:
注:後四個方法都支援稀疏和密集資料,而sag
僅在fit_intercept
為true時支援密集資料。
tol
:精度
random_state
:sag
的偽隨機種子
以上就是所有的初始化引數,當然,初始化後還可以通過set_params
方法重新進行設定。
回歸分析
在例項化ridge
類以後,就可以直接使用ridge
中整合的方法來進行回歸了,與絕大多數的sklearn類一樣,ridge
使用fit
方法執行計算
得到回歸函式後,我們可以通過predict
來使用回歸函式。
對於模型的好壞,ridge
當然提供了評價的方法——score
在sklearn中並沒有提供直接的檢視回歸方程的函式,因此檢視的時候需要自己轉化一下。其實,sklearn就是把相關係數和殘差分開儲存了,因此,檢視的時候要呼叫coef_
和intercept_
兩個屬性。
可能有用的方法
這些方法在sklearn的基類中就已經整合,但在一般情況下,通常不會用到。
以上就是ridge
的總體介紹,在現實生活中,一般不會想上面的例項中的直接使用定值來計算,下面是乙個更實際一點的例子:
# author: fabian pedregosa --
# license: bsd 3 clause
import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model
# x is the 10x10 hilbert matrix
x = 1. / (np.arange(1, 11) + np.arange(0, 10)[:, np.newaxis])
y = np.ones(10)
######
######
######
######
######
######
######
######
######
######
######
######
######
## compute paths
n_alphas = 200
alphas = np.logspace(-10, -2, n_alphas)
clf = linear_model.ridge(fit_intercept=false)
coefs =
for a in alphas:
clf.set_params(alpha=a)
clf.fit(x, y)
######
######
######
######
######
######
######
######
######
######
######
######
######
## display results
ax = plt.gca()
ax.set_color_cycle(['b', 'r', 'g', 'c', 'k', 'y', 'm'])
ax.plot(alphas, coefs)
ax.set_xscale('log')
ax.set_xlim(ax.get_xlim()[::-1]) # reverse axis
plt.xlabel('alpha')
plt.ylabel('weights')
plt.title('ridge coefficients as a function of the regularization')
plt.axis('tight')
plt.show()
這個例子中,alpha為1e-10~1e-2,以對數值等分,對每乙個aplha進行一次計算,最後畫出嶺跡圖。嶺跡圖的樣子如下:
到此,嶺回歸的內容就結束了,我是sklearn的小小搬運工^_^/
sklearn之嶺回歸
嶺回歸 ridge regression 如果資料的特徵比樣本點還多,資料特徵n,樣本個數m,如果n m,則計算 xtx 的逆矩陣時會出錯,因為 xtx 不是滿秩矩陣,所以不可逆。注 xt表示x的轉置矩陣 嶺回歸是有偏估計 嶺回歸代價函式這裡就不貼了 選取 值使得 1.各回歸係數的嶺估計基本穩定 2...
sklearn嶺回歸應用
前言 前面博文關於線性回歸模型我們可以用梯度下降法或者標準方程法進行訓練,但是兩種方法各有優缺點。特別是標準方程法乙個比較重要的缺點是資料存在不可逆現象則無法訓練出結果,而嶺回歸就是解決標準方程法這一缺點出現的,嶺回歸模型是由帶正則化的代價函式推導得到,他避免資料不可逆的現象,進而得到近似最優解。關...
python機器學習之 sklearn 嶺回歸
今天看了會l2正則化,大致的意思就是在懲戒函式中加入高次項的懲戒項,用來減小線性回歸中高次項的係數,避免過擬合的狀態。這樣就產生了一種具有正則化的線性回歸模型 嶺回歸。sklearn.linear model.ridge alpha 1.0 具有正則化的線性最小二乘法 alpha 表示正則化力度 c...