numpy基础(part15)--线性模型
生活随笔
收集整理的這篇文章主要介紹了
numpy基础(part15)--线性模型
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
學(xué)習(xí)筆記,這個(gè)筆記以例子為主。
開發(fā)工具:Spyder
線性模型
若有一組觀測值:
[x11, x12, y1], [x21, x22, y2], [x31, x32, y3], ... [xn1, xn2, yn]則總體回歸模型為:
列成矩陣形式:
在給出總體中的一組樣本,則估計(jì)的樣本回歸函數(shù)為:
若要求出偏回歸系數(shù)𝛽1, 𝛽2,和截距項(xiàng) 𝛽0,則有相關(guān)函數(shù):
B = np.linalg.lstsq(X, Y) b1 = B[0][0] b2 = B[0][1] b0 = B[0][2]若有k個(gè)自變量,則相關(guān)函數(shù)的寫法以此類推。
舉個(gè)例子(對模擬的數(shù)據(jù)進(jìn)行多元回歸分析)
代碼:
import numpy as npX = np.array([range(1, 11), np.random.randint(1, 20, 10),np.ones(10)]).TY = 2*X[:, 0] - X[:, 1] + 5*X[:, 2] + \np.array(np.random.normal(0, 1, 10)) B = np.linalg.lstsq(X, Y)print(B) b1 = B[0][0] b2 = B[0][1] b0 = B[0][2] print('b1:', b1, 'b2:', b2, 'b0:', b0)結(jié)果:
(array([ 1.91143292, -1.13716838, 6.97656854]), array([ 5.11734472]), 3, array([ 47.9682451 , 11.92711516, 0.88959877])) b1: 1.91143292471 b2: -1.13716837881 b0: 6.97656854129則由該樣本估計(jì)的回歸方程為:
若有點(diǎn)集[[1, 2], [3, 4], [5, 6]]則帶入回歸方程中,求出預(yù)測值:
import numpy as npX = np.array([range(1, 11), np.random.randint(1, 20, 10),np.ones(10)]).TY = 2*X[:, 0] - X[:, 1] + 5*X[:, 2] + \np.array(np.random.normal(0, 1, 10)) B = np.linalg.lstsq(X, Y)Xpre = np.array([[1, 2, 1], [3, 4, 1], [5, 6, 1]]) Ypre = Xpre.dot(B[0]) print(Ypre)結(jié)果:
[ 4.00497056 6.18824332 8.37151608]總結(jié)
以上是生活随笔為你收集整理的numpy基础(part15)--线性模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 良品铺子的股票代码
- 下一篇: 边缘世界怎么种植食物比较好?环世界种植区