1.定義**函式.sigmoid
g (z
)=11
+e−z
g(z) = \frac}
g(z)=1
+e−z
12.定義損失函式(目標)函式
3.使用梯度下降求損失函式最小時的係數
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
defsigmoid
(w,b)
: linear = np.dot(x,w)
+ b return1/
(1+ np.exp(
-linear)
)def
loss
(y_true,y_pred)
:return
-np.
sum(y_true * np.log(y_pred)+(
1-y_true)
*np.log(
1-y_pred))/
100w = np.random.randn(2)
*0.01
b =0
learning_rate =
0.01
max_iter =
10000
i =0
while
true
: y_pred = sigmoid(w,b)
# 計算梯度/導數
dw = np.dot(
(y_pred - y_true)
,x)/
100 db = np.
sum(y_pred - y_true)
/100
w = w - learning_rate * dw
b = b - learning_rate * db
# 每隔100輸出中間過程
if i %
100==0:
# 計算準確率和損失函式
# 設定閾值把概率轉換為類別
# 假設閾值為0.5, >0.5為正例
y_ =
(y_pred >=
0.5)
accuracy=
(y_ == y_true)
.mean(
)
y_pred = sigmoid(w,b)
cost=loss(y_true,y_pred)
print
(f'第次訓練,損失:,準確率:'
)
i +=
1if i > max_iter:
break
手動實現線性回歸
我們自定義資料,使用torch實現線性回歸。假設我們的基礎模型是y wb c,其中,w,b均為引數 我們是用y 3x 0.8 來構造資料x,y 所以最後求出的w,b應該接近3,0.8.1.準備資料 2.計算 值 3.計算損失,把引數梯度設定為0,進行反向傳播。4.更新引數 import torch ...
手動實現線性回歸
找到 函式.y wx b x 找到目標函式 損失函式 最小二乘法.1 2m i 1 m yi y frac sum m y i hat 2m1 i 1 m yi y 使用梯度下降找到損失函式取的最小值的時候對應的係數.import numpy as np import pandas as pd im...
機器學習 邏輯回歸 Python實現邏輯回歸
coding utf 8 author 蔚藍的天空tom import numpy as np import os import matplotlib.pyplot as plt from sklearn.datasets import make blobs global variable path...