二元分类逻辑回归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
相关推荐
Kyln.Wu21 分钟前
【python实用小脚本-205】[HR揭秘]手工党逐行查Bug的终结者|Python版代码质量“CT机”加速器(建议收藏)
开发语言·python·bug
计算机毕业设计木哥23 分钟前
Python毕业设计推荐:基于Django的饮食计划推荐与交流分享平台 饮食健康系统 健康食谱计划系统
开发语言·hadoop·spring boot·后端·python·django·课程设计
小草cys43 分钟前
在树莓派集群上部署 Distributed Llama (Qwen 3 14B) 详细指南
python·llama·树莓派·qwen
数据科学作家4 小时前
学数据分析必囤!数据分析必看!清华社9本书覆盖Stata/SPSS/Python全阶段学习路径
人工智能·python·机器学习·数据分析·统计·stata·spss
HXQ_晴天5 小时前
CASToR 生成的文件进行转换
python
java1234_小锋6 小时前
Scikit-learn Python机器学习 - 特征预处理 - 标准化 (Standardization):StandardScaler
python·机器学习·scikit-learn
Python×CATIA工业智造6 小时前
Python带状态生成器完全指南:从基础到高并发系统设计
python·pycharm
向qian看_-_6 小时前
Linux 使用pip报错(error: externally-managed-environment )解决方案
linux·python·pip
Nicole-----7 小时前
Python - Union联合类型注解
开发语言·python
Eric.5659 小时前
python advance -----object-oriented
python