二元分类逻辑回归python代码实现

python 复制代码
import numpy as np
from math import *


#sigmoid函数
def sigmoid(z):
    return 1/(1+exp(-z))

#计算代价的函数
def get_cost_logistic(X,y,w,b):
    m=X.shape[0]
    cost=0.0
    for i in range(m):
        z_i=np.dot(X[i],w)+b
        f_wb_i=sigmoid(z_i)
        cost+=-y[i]*np.log(f_wb_i)-(1-y[i])*np.log(1-f_wb_i)
    cost=cost/m
    return cost

#计算梯度的函数
def get_gradient(x,y,w,b):
   #获取数据量和特征数量
   m=x.shape[0]
   n=x.shape[1]
   dj_dw=np.zeros((n,))
   dj_db=0
   for i in range(m):
       error=sigmoid(np.dot(x[i,:],w)+b)-y[i]
       dj_db+=error
       for j in range(n):
           dj_dw[j]+=(error*x[i,j])
   dj_db=dj_db/m
   dj_dw=dj_dw/m
   return dj_dw,dj_db

#梯度下降函数
def gradient_descent(x,y,w_in,b_in,alpha,iters):
    w=w_in
    b=b_in
    cost_his=[]
    for i in range(iters):
        dj_dw,dj_db=get_gradient(x,y,w,b)
        w=w-dj_dw*alpha
        b=b-dj_db*alpha
        cost_his.append(get_cost_logistic(x,y,w,b))
        if (i)%(iters/10)==0:
            print(f'iteration:{i},cost:{cost_his[i]},w:{w},b:{b}')
    print(f'final w:{w},b:{b}')
    return w,b,cost_his
相关推荐
至善迎风12 分钟前
把 Python 应用打包成 Mac 应用程序 — 完整指南
python·macos
应用市场1 小时前
无人机编队飞行原理与Python仿真实现完整指南
python·无人机·cocos2d
蓝桉~MLGT2 小时前
Python学习历程——字符串相关操作及正则表达式
python·学习·正则表达式
一晌小贪欢2 小时前
Python爬虫第5课:正则表达式与数据清洗技术
爬虫·python·正则表达式·网络爬虫·python爬虫·python3·网页爬虫
Nina_7172 小时前
Google提示词白皮书总结(2)
人工智能·python
Lynnxiaowen2 小时前
今天我们继续学习python3编程之python基础
linux·运维·python·学习
hui函数3 小时前
Python全栈(基础篇)——Day10:后端内容(map+reduce+filter+sorted+实战演示+每日一题)
后端·python
hui函数3 小时前
Python全栈(基础篇)——Day13:后端内容(模块详解)
后端·python
西柚小萌新3 小时前
【深入浅出PyTorch】--7.2.PyTorch可视化2
人工智能·pytorch·python
java1234_小锋3 小时前
TensorFlow2 Python深度学习 - 使用TensorBoard可视化数据
python·深度学习·tensorflow·tensorflow2