今天又是自閉的一天,從入門到自閉,
一開始寫的顯示錯誤,然後看了半天沒看出來,一開始學習率是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 的要求,比一般的列舉高效的多,也易於理解。懸線法的思路 懸線法,懸線的定義,就是一條豎線,...