您好,登錄后才能下訂單哦!
這篇文章主要講解了“Sklearn廣義線性模型嶺回歸怎么實現”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Sklearn廣義線性模型嶺回歸怎么實現”吧!
嶺回歸(Ridge)通過對系數的大小施加懲罰來解決"普通最小二乘法"的一些問題。嶺系數最小化的是帶罰項的殘差平方和,
其中,a>=0是控制系數收縮量的復雜性參數:a的值越大,收縮量越大,模型對共線性的魯棒性也更強。
與其他線性模型一樣,Ridge用fit方法完成擬合,并將模型系數數w存儲在其coef_成員中
>>> from sklearn import linear_model
>>> reg = linear_model.Ridge (alpha = .5)
>>> reg.fit ([[0, 0], [0, 0], [1, 1]], [0, .1, 1])
Ridge(alpha=0.5, copy_X=True, fit_intercept=True, max_iter=None,
normalize=False, random_state=None, solver='auto', tol=0.001)
>>> reg.coef_
array([ 0.34545455, 0.34545455])
>>> reg.intercept_
0.13636...
嶺回歸示例:
嶺回歸主要是顯示共線性對估計器系數的影響。嶺回歸是此示例中使用的估計量。 每種顏色代表系數矢量的不同特征,并且根據正則化參數進行顯示。此示例還顯示了將Ridge回歸應用于病情嚴重的矩陣的有用性。 對于此類矩陣,目標變量的微小變化可能會導致計算出的權重出現巨大差異。 在這種情況下,設置某個正則化(alpha)來減少這種變化(噪聲)是很有用的。
當alpha很大時,正則化效應將主導平方損耗函數,并且系數趨于零。 在路徑的盡頭,隨著alpha趨于零且解趨于普通的最小二乘,系數呈現出較大的振蕩。 實際上,有必要以使兩者之間保持平衡的方式調整alpha。
import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model
#創建10*10矩陣
X = 1. / (np.arange(1, 11) + np.arange(0, 10)[:, np.newaxis])
y = np.ones(10)
# 計算不同a的計算結果
n_alphas = 200
alphas = np.logspace(-10, -2, n_alphas)#創建等比數列
coefs = []
for a in alphas:
ridge = linear_model.Ridge(alpha=a, fit_intercept=False)
ridge.fit(X, y)
coefs.append(ridge.coef_)
print(len(coefs))
# 可視化展示結果
ax = plt.gca()
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()
輸出:
感謝各位的閱讀,以上就是“Sklearn廣義線性模型嶺回歸怎么實現”的內容了,經過本文的學習后,相信大家對Sklearn廣義線性模型嶺回歸怎么實現這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。