《機器學習實戰》原始碼解析(七) 回歸

2021-10-06 04:49:39 字數 1873 閱讀 5516

#標準回歸函式和資料匯入函式

from numpy import

*import matplotlib.pyplot as plt

def

loaddataset

(filename)

:#計算特徵值長度

numfeat =

len(

open

(filename)

.readline(

).split(

'\t'))

-1datamat =

; labelmat =

#用於儲存資料及其標籤向量

fr =

open

(filename)

for line in fr.readlines():

#清洗資料

linearr =

curline = line.strip(

).split(

'\t'

)for i in

range

(numfeat)

:float

(curline[i]))

#儲存資料向量

float

(curline[-1

]))#儲存資料標籤

return datamat,labelmat

#輸入:清洗後的資料集,資料的真實標籤

#輸出:最佳回歸係數矩陣.計算最佳擬合直線,按照公式w=(x.t*x).i*(x.t*y)

defstandregres

(xarr,yarr)

: xmat = mat(xarr)

;ymat = mat(yarr)

.t#可計算化

xtx = xmat.t*xmat

#判斷行列式是否為0,若為0則不能用此函式求解,退出此函式

if linalg.det(xtx)

==0.0

:print

("this matrix is singular, cannot do inverse"

)return

ws = xtx.i*

(xmat.t*ymat)

#最佳估計

return ws

#測試以上**

xarr,yarr=loaddataset(r"選擇你自己的資料集儲存路徑"

)ws = standregres(xarr,yarr)

ws

#繪製資料散點圖和最佳擬合直線圖

xmat = mat(xarr)

#處理後的資料集

ymat = mat(yarr)

#資料的真實標籤

yhat = xmat*ws#資料的**標籤

fig = plt.figure(

)#建立畫布

ax = fig.add_subplot(

111)

#將畫布分為1行1列,在第一塊上作圖

ax.scatter(xmat[:,

1].flatten(

).a[0]

,ymat.t[:,

0].flatten(

).a[0]

)xcopy=xmat.copy(

)#複製資料集

xcopy.sort(0)

#對資料集按照公升序排列?

yhat=xcopy*ws#計算**值

ax.plot(xcopy[:,

1],yhat)

#畫圖plt.show(

)#展示圖

#計算相關係數

corrcoef(yhat.t,ymat)

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

機器學習實戰 學習筆記 10 回歸 嶺回歸 縮減方法可以去除不重要的引數 備註 同樣,為使用嶺回歸和縮減技術,首先需要對特徵做標準化處理,標準化使得每維度下的特徵有相同的重要性,具體 所有特徵減去各自的均值並除以方差 機器學習實戰 回歸 from numpy import def loaddatas...

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

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

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

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