《機器學習實戰》學習筆記 10 回歸 嶺回歸

2021-08-04 14:31:14 字數 1675 閱讀 3004

《機器學習實戰》學習筆記-[10]-回歸-嶺回歸

縮減方法可以去除不重要的引數

【備註】

同樣,為使用嶺回歸和縮減技術,首先需要對特徵做標準化處理,標準化使得每維度下的特徵有相同的重要性,具體:所有特徵減去各自的均值並除以方差

'''

機器學習實戰-回歸

'''from numpy import *

def loaddataset(filename):

numfeat = len(open(filename).readline().split('\t')) - 1

datamat = ;

labelmat =

fr = open(filename)

for line in fr.readlines():

linearr =

curline = line.strip().split('\t')

for i in range(numfeat):

return datamat, labelmat

def ridgeregres(xmat, ymat, lam=0.2):

xtx = xmat.t * xmat

demon = xtx + eye(shape(xmat)[1]) * lam

if linalg.det(demon) == 0.0:

print("this matrix is singular, cannot do inverse")

return

ws = demon.i * (xmat.t * ymat)

return ws

# a = [1,2,3]

# b = [[2,2,3],[3,3,3],[1,2,3]]

# bmat = mat(b)

# print(bmat)

# print(mean(bmat,0))

# 輸出,計算每一維度下的均值

# # [[2 2 3]

# # [3 3 3]

# # [1 2 3]]

# # [[ 2. 2.33333333 3. ]]

def ridgeregrestest(xarr, yarr):

xmat = mat(xarr);

ymat = mat(yarr).t

ymean = mean(ymat, 0)

ymat = ymat - ymean # 減去均值

# 歸一化x

xmeans = mean(xmat, 0) # 計算每一維度下的均值

xvar = var(xmat, 0) # 計算每一維度下的方差

xmat = (xmat - xmeans) / xvar

numtestpts = 30 # 計算30次不同的lam

wmat = zeros((numtestpts,shape(xmat)[1]))

for i in range(numtestpts):

ws = ridgeregres(xmat,ymat,exp(i-10))

wmat[i,:]=ws.t

return wmat

機器學習實戰 ch08 1回歸之嶺回歸

對於乙個統計學知識匱乏的工科生,還真得好好補補。通過各種資訊檢索,終於有了一點理解,同時發現了統計學真的很重要,比如金融 生物 尤基因 等與大量資料相關的領域。嶺回歸 是一種專用於共線性資料分析的有偏估計回歸方法,實質上是一種改良的最小二乘估計法,通過放棄最小二乘法的無偏性,以損失部分資訊 降低精度...

《機器學習實戰》學習筆記 12 回歸 樹回歸

機器學習實戰 學習筆記 12 回歸 樹回歸 分類與回歸樹 classification and regression trees,cart 是由四人幫leo breiman,jerome friedman,richard olshen與charles stone於1984年提出,既可用於分類也可用於...

機器學習8回歸問題

對於之前在分類問題中有邏輯回歸,而對於這個線性回歸以前一般是先講述,將線性回歸的結果通過函式對映到 0,1 區間,再以0.5作為區分形成分類問題。具體的計算方法,在以前的blogs提到過,參考 下面就直接實戰 跟之前一樣,第一步匯入資料。def loaddataset filename numfea...