python學習筆記(28) 多元線性回歸

2021-10-05 15:14:59 字數 2610 閱讀 4118

今天又是自閉的一天,從入門到自閉,

一開始寫的顯示錯誤,然後看了半天沒看出來,一開始學習率是0.001,最後調了個學習率就沒事了,不知道引數怎麼調,後面去看書找找

e:

/pycharm_/多元線性回歸.py:

35: runtimewarning: overflow encountered in double_scalars

k1_grad += x[j,0]

*(k1 * x[j,0]

+ k2 * x[j,1]

+ k0 - y[j])/

float

(len

(x))

e:/pycharm_/多元線性回歸.py:

38: runtimewarning: invalid value encountered in double_scalars

k1=k1-lr*k1_grad

nan nan nan

e:/pycharm_/多元線性回歸.py:

54: userwarning: z contains nan values. this may result in rendering artifacts.

ax.plot_su***ce(x0, x1, z)

import numpy as np

import matplotlib.pyplot as plt

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import axes3d

data = np.genfromtxt(

"delivery.csv"

, delimiter=

",")

x=data[:,

:-1]

y=data[:,

-1]'''

x,y形狀

(10, 2) (10,)

'''lr =

0.0001

k0 =

0k1 =

0k2 =

0epochs =

1000

deferoor

(x,y,k0,k1,k2)

: total_error=

0for i in

range(0

,len

(x))

: total_error+=

(k1*x[i,0]

+k2*x[i,1]

+k0-y[i])**

2return total_error/

float

(len

(x))

defgradient

(x,y,k0,k1,k2,lr,epochs)

:for i in

range

(epochs)

: k0_grad=

0 k1_grad=

0 k2_grad=

0for j in

range

(len

(x))

: k0_grad +=

(k1*x[j,0]

+k2*x[j,1]

+k0-y[j])/

float

(len

(x))

k1_grad += x[j,0]

*(k1 * x[j,0]

+ k2 * x[j,1]

+ k0 - y[j])/

float

(len

(x))

k2_grad += x[j,1]

*(k1 * x[j,0]

+ k2 * x[j,1]

+ k0 - y[j])/

float

(len

(x))

k0=k0-lr*k0_grad

k1=k1-lr*k1_grad

k2=k2-lr*k2_grad

return k0,k1,k2

k0,k1,k2=gradient(x,y,k0,k1,k2,lr,epochs)

#執行後的引數

print

(k0,k1,k2)

ax = plt.figure(

).add_subplot(

111, projection=

'3d'

)ax.scatter(x[:,

0], x[:,

1], y, c=

'r', marker=

'o', s=

100)

x0 = x[:,

0]x1 = x[:,

1]# 生成網格矩陣

x0, x1 = np.meshgrid(x0, x1)

z = k0 + x0 * k1 + x1 * k2

# 畫3d圖

ax.plot_su***ce(x0, x1, z)

# 顯示影象

python學習筆記 廖雪峰(28 模組)

模組是一組python 的集合,可以使用其他模組,也可以被其他模組使用。建立自己的模組時,要注意 你也許還想到,如果不同的人編寫的模組名相同怎麼辦?為了避免模組名衝突,python又引入了按目錄來組織模組的方法,稱為包 package 舉個例子,乙個abc.py的檔案就是乙個名字叫abc的模組,乙個...

線代學習筆記二

1 含有n個未知數的線性方程組ax b 1 無解 則 r a 2 向量組a a a a b beta beta beta 1 若b中每個向量都可以由a線性表示,則稱b能由a線性表示。若可以互相線性表示,則稱ab等價。2 b能由a線性表示的充要條件是矩陣 a a a a 的秩等於矩陣 a,b a a ...

懸線法 學習筆記

之前的考試包括做題都有用過這個方法,算是個套路了。寫一篇部落格總結一下。懸線法的用途 針對求給定矩陣中滿足某條件的極大矩陣,比如 面積最大的長方形 正方形 周長最長的矩形等等 可以滿足在時間複雜度為o m n 的要求,比一般的列舉高效的多,也易於理解。懸線法的思路 懸線法,懸線的定義,就是一條豎線,...