正規方程解多變數線性回歸

2021-10-10 07:48:29 字數 1254 閱讀 2482

梯度下降解法

正規方程方法

使用正規方程解法的時候注意矩陣不可逆的情況

用np.linalg.det()求解矩陣a的行列式|a|,如果行列式為0,不可逆,否則可逆。

import numpy as np

import pandas as pd

data = pd.read_csv(

'ex1data2.txt'

, names=

['size'

,'bedrooms'

,'price'])

data =

(data - data.mean())

/ data.std(

)data.insert(0,

'ones',1

)x = data.iloc[:,

0:-1

]y = data.iloc[:,

-1]x = x.values

y = y.values

y = y.reshape(

len(x),1

)print

(x.shape)

print

(y.shape)

defnormalequation

(x, y)

: theta = np.linalg.inv(x.t.dot(x)

).dot(x.t)

.dot(y)

return theta

theta = normalequation(x, y)

print

(theta)

# 我也不知道為啥兩種輸出的引數不一樣。其中jupyer的輸出是和我用梯度下降求的差不多。

# jupyter 的輸出

#[[-1.11022302e-16]

#[ 8.84682367e-01]

#[-5.30951990e-02]]

# pycharm 的輸出

#[[-7.63278329e-17]

#[ 8.84765988e-01]

# [-5.31788197e-02]]

梯度下降和正規方程的對比

多變數線性回歸以及正規方程實現線性回歸

在多變數線性回歸中假設函式依然是 代價函式是以及它的向量表示 y是乙個 n,1 維的列向量,x t得到 n,1 維的向量,每一行資料是第 i 個元素,每乙個元素都有相同的特徵。梯度下降的更新規則 為了方便計算我們轉化為矩陣的乘法 通過矩陣可以證明上述兩種形式的公式是等價的。我們通過同時更新 的 來計...

多變數線性回歸

import numpy as np import pandas as pd import matplotlib.pyplot as plt import cost function import gd function path ex1data2.txt data2 pd.read csv pat...

多變數線性回歸

固定隨機數 x1 numpy.random.random 50 x2 numpy.random.random 50 y 3 0.7 x1 2.3 x2 x numpy.c x1,x2 x numpy.c numpy.ones len x x y numpy.c y m,n x.shape alpha...