python實現正規方程

2021-10-02 21:30:22 字數 833 閱讀 8597

我們需要使用numpy,這是乙個很方便的數**算庫,沒有的話可以開啟cmd輸入裝乙個

pip install numpy
然後我們只需要匯入numpy

import numpy as np
那麼求解可逆矩陣的逆我們可以用

numpy.linalg.inv(a)
其中a就是我們需要求逆的矩陣,在numpy裡面可以用ndarray來實現矩陣

簡單舉乙個例子

x=np.array([[

1,1]

,[1,

1]])

print

(x)

[[1 1]

[1 1]]

如果該矩陣是奇異矩陣的話就使用

numpy.linalg.pinv(a)
同時python中可以使用@來完成矩陣之間的點乘,這個特性是在python3.5新加的,如果使用版本沒有這個功能,可以用dot函式代替。

那麼接下來我們只需

def

normaleqn

(x, y)

:#可逆就選下面

theta = np.linalg.inv(x.t@x)@x.t@y #x.t@x

#不可逆就選這個

theta = np.linalg.pinv(x.t@x)@x.t@y #x.t@x

return theta

順帶一提pinv在可逆的時候也可以得到inv的結果,只是會慢一點而已

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

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

機器學習 正規方程

梯度下降法計算引數最優解,過程是對代價函式的每個引數求偏導,通過迭代演算法一步步更新,直到收斂到全域性最小值,從而得到最優引數。正規方程是一次性求得最優解。思想 對於乙個簡單函式,對引數求導,將其值置為0,就得到引數的值。像下面這樣 現實例子有很多引數,我們要對這些引數都求偏導數,得到各個引數的最優...

python實現正態分佈

就是非常簡單的用正態分佈的公式畫個圖即可,簡單方便 y sig np.exp x u 2 2 sig 2 math.sqrt 2 math.pi sig 或參考 統計學 四 python實現正態分佈 leolrh 正態分佈 normaldistribution 也稱 常態分布 又名高斯分布 gaus...