欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 二元分类逻辑回归python代码实现

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

2024/10/24 16:25:30 来源:https://blog.csdn.net/2301_79376014/article/details/141791225  浏览:    关键词:二元分类逻辑回归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.0for i in range(m):z_i=np.dot(X[i],w)+bf_wb_i=sigmoid(z_i)cost+=-y[i]*np.log(f_wb_i)-(1-y[i])*np.log(1-f_wb_i)cost=cost/mreturn cost#计算梯度的函数
def get_gradient(x,y,w,b):#获取数据量和特征数量m=x.shape[0]n=x.shape[1]dj_dw=np.zeros((n,))dj_db=0for i in range(m):error=sigmoid(np.dot(x[i,:],w)+b)-y[i]dj_db+=errorfor j in range(n):dj_dw[j]+=(error*x[i,j])dj_db=dj_db/mdj_dw=dj_dw/mreturn dj_dw,dj_db#梯度下降函数
def gradient_descent(x,y,w_in,b_in,alpha,iters):w=w_inb=b_incost_his=[]for i in range(iters):dj_dw,dj_db=get_gradient(x,y,w,b)w=w-dj_dw*alphab=b-dj_db*alphacost_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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com