1.获得数据集
2.建立sigmoid函数
3.求sigmoid 的导数
4.求cost的导数
5.求loss的导数
6.递归下降求参数
import numpy as np
import matplotlib.pyplot as plt
import math
#原始数据 得出的边界为7-2x
x=np.mat([1,2,3,3.3,3.4,3.6,4,5,6])
y=np.mat([1,1,1,1,1,0,0,0,0])
y=y.T
a=0
b=0
canshu=np.mat([a,b])
canshu=canshu.T
def sigmoid(z):
return (1/(1+np.exp(-z)))
print(canshu)
bianliang=np.column_stack(([1,1,1,1,1,1,1,1,1],x.T))
print(bianliang[:,0])
#学习速率
alpha=0.01
step=2000
for i in range(step):
xiaoy=bianliang*canshu
prey = sigmoid(xiaoy)
print(prey)
a=a+alpha*(y-prey).T*bianliang[:,0]
b=b+alpha*(y-prey).T*bianliang[:,1]
canshu=np.column_stack([a,b]).T
print(canshu)
plt.scatter(x,y)
bianliang
print(sigmoid(bianliang*canshu))
对原始数据集的检验为