您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關 Python中嶺回歸的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
嶺回歸是一種專門用于共線性數據分析的有偏估計回歸方法,實質上時改良的最小二乘估計法,通過放棄最小二乘法的無偏性(在反復抽樣的情況下,樣本均值的集合的期望等于總體均值),以損失部分信息、降低精度為代價獲得回歸系數更為符合實際、更可靠的回歸方法,對共線性問題和病態數據的擬合要強于最小二乘法經,常用于多維問題與不適定問題(ill-posed problem)。
嶺回歸通過引入一個懲罰變量解決了普通最小二乘法的問題。嶺回歸相關系數是的懲罰殘差平方和最小:
是收縮率,既控制模型復雜度的因子。
import numpy as np import matplotlib.pyplot as plt from sklearn import linear_model#創建一個希伯特矩陣(高度病態,任何一個元素的點發生變動,整個矩陣的行列式的值和逆矩陣都會發生巨大變化)#這里的加法運算類似于矩陣相乘X = 1. / (np.arange(1, 11) + np.arange(0, 10)[:, np.newaxis]) y = np.ones(10)#計算路徑n_alphas = 200alphas = 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) coefs.append(clf.coef_)#圖形展示#設置刻度ax = plt.gca() #設置刻度的映射 ax.plot(alphas, coefs)#設置x軸的刻度顯示方式ax.set_xscale('log')#翻轉x軸ax.set_xlim(ax.get_xlim()[::-1])#設置x、y標簽以及標題plt.xlabel('alpha') plt.ylabel('weights') plt.title('Ridge coefficients as a function of the regularization')#使得坐標軸最大值和最小值與數據保持一致plt.axis('tight') plt.show()
上圖展示了嶺回歸模型的解的10個分量隨正則化參數Alpha變化而變化的趨勢。每一種顏色代表了不同的相關系數向量特征,它隨著傳入的正則化參數Alpha的變化而變化。由于圖像形態,嶺回歸又稱為脊回歸。
這個例子展示了嶺回歸處理病態矩陣( ill-conditioned matrices)的優勢。在病態矩陣里每一個目標變量微小的變動都會產生巨大的方差。對于這種情況就需要設置一個比較合適的正則化參數來減少離差(噪聲)。
當正則參數Alpha非常大的時候,正則化的影響支配了二乘法函數,相關系數趨近于0。在路徑的結尾,當正則參數alpha趨近于0的時候,結果解趨近于了普通最小二乘法,系數表現出了很大的震蕩。
設置正則參數
在實踐中要不斷的調節正則參數Alpha在上述過程中尋求一種平衡。
RidgeCV實現了嶺回歸的交叉驗證,下面是一種高效的交叉驗證方式-留一交叉驗證(leave-one-out):
>>> from sklearn import linear_model >>> clf = linear_model.RidgeCV(alphas=[0.1, 1.0, 10.0]) >>> clf.fit([[0, 0], [0, 0], [1, 1]], [0, .1, 1]) RidgeCV(alphas=[0.1, 1.0, 10.0], cv=None, fit_intercept=True, scoring=None, normalize=False) >>> clf.alpha_ 0.1
關于“ Python中嶺回歸的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。