標準方程法 嶺回歸

2021-09-14 04:34:00 字數 2261 閱讀 1005

待續

import numpy as np

from numpy import genfromtxt

import matplotlib.pyplot as plt

# 讀入資料

data = genfromtxt(r"longley.csv"

,delimiter=

',')

print

(data)

# 切分資料

x_data = data[1:

,2:]

y_data = data[1:

,1,np.newaxis]

print

(x_data)

print

(y_data)

print

(np.mat(x_data)

.shape)

print

(np.mat(y_data)

.shape)

# 給樣本新增偏置項

x_data = np.concatenate(

(np.ones((16

,1))

,x_data)

,axis=1)

print

(x_data.shape)

# 嶺回歸標準方程法求解回歸引數

defweights

(xarr, yarr, lam=

0.2)

: xmat = np.mat(xarr)

ymat = np.mat(yarr)

xtx = xmat.t*xmat # 矩陣乘法

rxtx = xtx + np.eye(xmat.shape[1]

)*lam

# 計算矩陣的值,如果值為0,說明該矩陣沒有逆矩陣

if np.linalg.det(rxtx)

==0.0

:print

("this matrix cannot do inverse"

)return

# xtx.i為xtx的逆矩陣

ws = rxtx.i*xmat.t*ymat

return ws

ws = weights(x_data,y_data)

print

(ws)

# 計算**值

np.mat(x_data)

*np.mat(ws)

「」,「gnp.deflator」,「gnp」,「unemployed」,「armed.forces」,「population」,「year」,「employed」

「1947」,83,234.289,235.6,159,107.608,1947,60.323

「1948」,88.5,259.426,232.5,145.6,108.632,1948,61.122

「1949」,88.2,258.054,368.2,161.6,109.773,1949,60.171

「1950」,89.5,284.599,335.1,165,110.929,1950,61.187

「1951」,96.2,328.975,209.9,309.9,112.075,1951,63.221

「1952」,98.1,346.999,193.2,359.4,113.27,1952,63.639

「1953」,99,365.385,187,354.7,115.094,1953,64.989

「1954」,100,363.112,357.8,335,116.219,1954,63.761

「1955」,101.2,397.469,290.4,304.8,117.388,1955,66.019

「1956」,104.6,419.18,282.2,285.7,118.734,1956,67.857

「1957」,108.4,442.769,293.6,279.8,120.445,1957,68.169

「1958」,110.8,444.546,468.1,263.7,121.95,1958,66.513

「1959」,112.6,482.704,381.3,255.2,123.366,1959,68.655

「1960」,114.2,502.601,393.1,251.4,125.368,1960,69.564

「1961」,115.7,518.173,480.6,257.2,127.852,1961,69.331

「1962」,116.9,554.894,400.7,282.7,130.081,1962,70.551

機器學習演算法筆記 P20標準方程法 嶺回歸

usr bin env python coding utf 8 in 1 import numpy as np from numpy import genfromtxt import matplotlib.pyplot as plt in 2 讀入資料 data genfromtxt r longl...

標準方程法(正規方程法)

為了求得引數 也可以不用迭代的方法 比如梯度下降法對同一批資料一直迭代 可以採用標準方程法一次性就算出了 而且還不用feature scaling 如果feature不多的話,比如一萬以下,用這種方法最好 標準方程法介紹 1 這裡面,x的第一列是人為新增的,為了方便運算的,都置為1,後面才是真正的特...

嶺回歸 lasso回歸

嶺回歸 ridge regression 和lasso least absolute shrinkage and selection operator 都是ols的改進,知乎上有關於三者異同的詳細討論 關於lasso 這裡記錄一下最近的學習心得。嶺回歸的含義 嶺回歸的權值計算公式中有單位方陣i,就像...