python 逻辑回归准确率是1_Python|机器学习-逻辑回归模型

本文介绍了如何使用Python实现逻辑回归模型,通过交叉熵损失函数进行优化,并使用sklearn的乳腺癌数据集进行训练和测试。讨论了模型评估指标如准确率,并展示了模型在训练和测试数据上的表现。
摘要由CSDN通过智能技术生成

逻辑回归模型就是需要将预测结果划分为两种状态,一般为0和1。

所以我们引入一个可以将所有结果表示在0-1闭区间的函数:

y=1/(1+e^(-z))

z=θ*x

38e0a31718c4c93b154627485b89934e.png

用J表示损失函数,计算交叉熵为损失函数的值。交叉熵函数可以衡量预测结果与实际结果的相似性。

离散变量的交叉熵计算:

ccca9bd5ade7b4155bec3aeb8817da03.png,带入0-1的模型则如下

J=y*log(1/y_hat)+(1-y)*log(1/(1-y_hat)),化简如下:

J=-y*log(y_hat)-(1-y)*log(1-y_hat)

def cross_entropy(y, y_hat):    n_samples = y.shape[0]    return sum(-y*np.log(y_hat)-(1-y)*np.log(1-y_hat))/n_samples

优化模型如下:

θ=θ-α*(∂J/∂θ)

这里简单求一下偏导数就可以了,y是常数。

∂J/∂θ=(y_hat-y)*x

def optimize(theta,X,y):    n = X.shape[0]    alpha = 1e-1    y_hat = model(theta,X)    dtheta = (1.0/n) * ((y_hat-y)*X)    dtheta = np.sum(dtheta, axis=0)    dtheta=dtheta.reshape((31,1))    theta = theta - alpha * dtheta    return theta

之后可以对这种分类问题进行简单的评估,比如准确率,召回率,精确率。

之后不断地调用优化函数更新参数就可以了。

使用sklearn自带的数据进行测试。

from sklearn.datasets import load_breast_cancerfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LogisticRegressiondataset = load_breast_cancer()x = dataset.datay = dataset.targetx_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=12345)lr = LogisticRegression()lr.fit(x_train, y_train)print(lr.score(x_train, y_train))print(lr.predict(x_test))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值