二元分类逻辑回归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
相关推荐
电饭叔3 分钟前
Tkinter Button 括号内的核心参数详解
python·学习
ktoking19 分钟前
Stock Agent AI 模型的选股器实现 [五]
人工智能·python
地球资源数据云25 分钟前
SCI制图——云雨图
python·信息可视化·数据分析
独自破碎E26 分钟前
Spring Boot + LangChain4j 报错:Bean 类型不匹配的解决办法
spring boot·python·pycharm
小W与影刀RPA32 分钟前
【影刀 RPA】 :文档敏感词批量替换,省时省力又高效
人工智能·python·低代码·自动化·rpa·影刀rpa
Python+JAVA+大数据38 分钟前
TCP_IP协议栈深度解析
java·网络·python·网络协议·tcp/ip·计算机网络·三次握手
一个无名的炼丹师1 小时前
多模态RAG系统进阶:从零掌握olmOCR与MinerU的部署与应用
python·大模型·ocr·多模态·rag
u0109272711 小时前
使用XGBoost赢得Kaggle比赛
jvm·数据库·python
MediaTea1 小时前
<span class=“js_title_inner“>Python:实例对象</span>
开发语言·前端·javascript·python·ecmascript
feasibility.2 小时前
多模态模型Qwen3-VL在Llama-Factory中断LoRA微调训练+测试+导出+部署全流程--以具身智能数据集open-eqa为例
人工智能·python·大模型·nlp·llama·多模态·具身智能