Python線性回歸與回歸分析(支援多元)

2021-10-06 11:20:34 字數 2768 閱讀 9963

import matplotlib.pyplot as plt

# plt.style.use('ggplot')

from matplotlib.font_manager import fontproperties # 解決中文字元顯示不全

import numpy as np

font = fontproperties(fname=r"c:\windows\fonts\simsun.ttc"

, size=

12)

x =[

3.4,

1.8,

4.6,

2.3,

3.1,

5.5,

0.7,

3.0,

2.6,

4.3,

2.1,

1.1,

6.1,

4.8,

3.8]

y =[

26.2

,17.8

,31.3

,23.1

,27.5

,36.0

,14.1

,22.3

,19.6

,31.3

,24.0

,17.3

,43.2

,36.4

,26.1

]x = np.array(x)

y = np.array(y)

class

linearregression

:def

__init__

(self)

: self.x =

none

self.y =

none

self.wb =

none

# 權重 偏置

self.w =

none

# 權重

self.b =

none

# 偏置

deffit

(self, x=

none

, y=

none):

self.x = np.array(x)

self.y = np.array(y)

iflen

(self.x.shape)==1

:# 若為單自變數

self.x.resize(

(len

(self.x),1

))# 轉為一列

self.y.resize(

(len

(self.y),1

))# 轉為一列

self.x = np.concatenate(

[self.x, np.ones(

(len

(self.x),1

))],axis=1)

# 加一列常數項1

# print(self.x )

# self.x.transpose() # 自轉置

matmul_xx = np.matmul(self.x.t, self.x)

matmul_xy = np.matmul(self.x.t, self.y)

self.wb = np.matmul(np.linalg.inv(matmul_xx)

, matmul_xy)

# print(self.wb)

self.w = self.wb.t[0,

0:-1

] self.b = self.wb[-1

,0]def

predict

(self,x=

none):

temp_x = np.array(x)

iflen

(temp_x.shape)==1

: temp_x.resize((1

,len

(temp_x)))

# 加一維[temp_x]

y_pred = temp_x * self.w + self.b

# print(y_pred)

return y_pred.flat

defgetr_2

(x, y, y_pred)

:# 獲取r^2

sr =

sum(

(y_pred - np.mean(y))**

2)se =

sum(

(y - y_pred)**2

) st = sr + se

r_square = sr / st # 相關性係數r^2

print

(r_square)

return r_square

regression = linearregression(

)regression.fit(x,y)

y_pred = regression.predict(x)

r_square = getr_2(x,y,y_pred)

plt.title(

'回歸方差:{}'

python_一元線性回歸及回歸顯著性

數理統計知識整理——回歸分析與方差分析

線性回歸與邏輯回歸

cost functionj 12m i 1m h x i y i hypothesish x tx 梯度下降求解 為了最小化j j j 1m i 1m h x i y i x i j 每一次迭代更新 j j 1m i 1m h x i y i x i j 正規方程求解 最小二乘法 xtx 1x t...

多元線性回歸分析

功能 多元線性回歸分析 include math.h include stdio.h include stdlib.h typedef struct rmatrix rm,rmp rm 實矩陣型別,rmp 實矩陣型別指標 typedef struct cnumber cnum,cnump cnum ...

1 線性回歸與非線性回歸

線性回歸就是針對回歸問題的一種線性模型。特點 簡單優雅,模型本身擬合樣本能力不強,通常需要深層次的特徵。對損失函式的一些解釋 假定誤差服從中心極限定理,說明了誤差進行疊加最後趨近於標準正態分佈,先對誤差建立極大似然估計,然後引入到樣本上,最終求解得到損失函式。ps 中心極限定理假定每個樣本需要滿足均...