Pycharm逻辑回归和线性回归的三个函数的差别

import numpy as np  
#画图包
import matplotlib.pyplot as plt
# 2.模型
def model(x,theta):
    z=x.dot(theta)
    h=1/(1+np.exp(-z))
    return h


# 代价函数
m,n=train_X1.shape
def cost(h,y,theta,lamda):
    # 正则化    
    R=lamda/(2*m)*np.dot(theta.T,theta)
    j=-np.mean(y*np.log(h)+(1-y)*np.log(1-h))+R
    return j
#

#梯度下降函数
def grop(x,y,alphy,num,lamda=0.5):
    m,n=x.shape
    theta=np.zeros((n,1))
    j=np.zeros(num)
    for i in range(num):
        h=model(x,theta)
        j[i]=cost(h,y,theta,lamda)
        de_theta=1/(m)*x.T.dot(h-y)+(lamda/m)*theta  #正则化
        theta=theta-alphy*de_theta
    return j,h,theta
j,h,theta=grop(x=train_X1,y=train_Y,alphy=0.01,num=1000,lamda=0.5)

# 求精确值
def acce(x,y,theta):
    m,n=x.shape
    sum=0
    for i in range(m):
        h=model(x,theta)
        if (np.where(h[i]>0.5,1,0)==y[i]):
            sum+=1
    acc=sum/m
    return accz

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值