《機器學習實戰》學習筆記-[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...