嶺回歸計算公式
下面是python**
# 嶺回歸
import numpy as np
import os
os.chdir(
'...\\machinelearning\\regression'
)# 設定路徑
# 建立資料集
defloaddataset
(filename)
: firstline =
open
(filename)
.readline(
).strip(
).split(
'\t'
)# 讀取第一行
numfeat =
len(firstline)-1
# 特徵的數量
datamat =
labelmat =
fr =
open
(filename)
for line in fr.readlines():
linearr=
# datamat的一行
curline=line.strip(
).split(
'\t'
)# curline是乙個list ['1.000000', '0.067732', '3.176513']
for i in
range
(numfeat)
:float
(curline[i]))
# linearr ['0.067732', '3.176513']
float
(curline[-1
]))return datamat,labelmat
# 呼叫函式,匯入資料
xarr,yarr=loaddataset(
'abalone.txt'
)# xarr[0:2]
# 返回前兩行資料 [[1.0, 0.067732], [1.0, 0.42781]]
# 給定lambda下嶺回歸權重求解
defridgeregres
(xmat,ymat,lam=
0.2)
:# 傳入的引數為矩陣
n=np.shape(xmat)[1
]# 特徵數量為2
denom = xmat.t*xmat+ np.eye(n)
*lam
if np.linalg.det(denom)==0
:print
('矩陣不可逆'
)return
ws=denom.i*
(xmat.t*ymat)
return ws # 2*1的權重
# 主要函式ridgetest:用處是lambda的選擇
# 返回numtestpts個不同的lambda值下的權重矩陣
defridgetest
(xarr,yarr,numtestpts=30)
: xmat=np.mat(xarr)
ymat=np.mat(yarr)
.t n = np.shape(xmat)[1
]# xmat的列數為2
# 嶺回歸需要採用標準化處理
ymean= np.mean(ymat,0)
# 引數0表示壓縮行,對矩陣的列求平均值
ymat=ymat-ymean # 得到ymat
xmean=np.mean(xmat,0)
xvar=np.var(xmat,0)
xmat=
(xmat-xmean)
/xvar # 得到xmat
wmat=np.zeros(
(numtestpts,n)
)# 初始化權重矩陣30*2
for i in
range
(numtestpts)
:# i從0-29
ws=ridgeregres(xmat,ymat,np.exp(i-10)
)# lam指數級變化從exp(-10)到exp(19)
wmat[i,:]
=ws.t
return wmat
# 應用
ridgeweights = ridgetest(xarr,yarr,30)
# 求出權重矩陣
# 畫圖
import matplotlib.pyplot as plt
fig = plt.figure(
)ax=fig.add_subplot(
111)
ax.plot(ridgeweights)
plt.show(
)
機器學習 嶺回歸和LASSO回歸
1.用矩陣表示多元線性回歸 y bx a q b y bx t y bx 達到最小時的b值。也即是殘差平方和最小時。b bi 的值。可以證明b的最小二乘估計 xtx 1xty 其中 xtx 1為廣義逆。1.出現多重共線性2.當n 嶺回歸 ridge regression 先對資料做標準化 b k x...
機器學習 監督學習 (回歸)嶺回歸
1 嶺回歸 標準方程法 import numpy as np from numpy import genfromtxt import matplotlib.pyplot as plt 讀入資料 data genfromtxt r longley.csv delimiter 切分資料 x data d...
機器學習 softmax回歸 python實現
恢復內容開始 softmax regression 可以看做是 lr 演算法在多分類上的推廣,即類標籤 y 的取值大於或者等於 2。假設資料樣本集為 left y right left x y right left x y right left x y right right 對於 sr 演算法,其...