import torch
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt#数据预处理
#因为把数据集第一列当成了表头,所以写一句
data = pd.read_csv('C:\\Users\\qjjt\\Desktop\\python\\dataset\\第4章\\credit-a.csv',header=None)
print(data.head())#注意这里第16列是输出,不是特征值,所以要注意选取
#iloc函数根据位置索引,:是所有行都取。:-1取到-1前的列的特征
X = data.iloc[:,:-1]
Y = data.iloc[:,-1]
Y.unique() #查看Y的取值,可看见为1,-1,这里因为是逻辑回归,最好改为0,1
Y = data.iloc[:,-1].replace(-1,0)#将y中的-1替换为0
print(Y.unique())#数据预处理,从pandas转为tensor
X = torch.from_numpy(X.values).type(torch.float32)#X的值转为tensor后指定数据类型为float32print(X.shape) #可看出x的值是一个矩阵
print(Y.values) #可看出y是一个array,所以需要reshape成列向量的样子.因为X是[653,15],所以Y也要变成[653,1]
Y = torch.from_numpy(Y.values.reshape(-1,1)).type(torch.float32)
print(Y.size()) #torch.Size([653, 1])from torch import  nn#ky直接将多个层顺序组合成一个模型
# 第一层linear层输入15个特征值,输出一个参数
# 第二层sigmoid层转换,输出0,1
model = nn.Sequential(nn.Linear(15,1),nn.Sigmoid()
)
print(model) #打印看看model样子#二元交叉熵损失函数
loss_fn = nn.BCELoss()#优化函数
opt = torch.optim.Adam(model.parameters(),lr = 0.001)#batch训练,即从训练集中取出一部分训练
batch_size = 16   #一次训练16个数据
no_of_batch = 653//16  #最终要完成训练所花的次数,这里是整除epoches = 1000 #epoche指全部数据训练一遍
for epoche in range(epoches):for batch in range(no_of_batch):start = batch*batch_size #每次从start行开始输入数据end = start + batch_sizex = X[start:end] #一个批次中的x,yy = Y[start:end]y_pred = model(x)loss = loss_fn(y_pred,y)#梯度置零和计算参数梯度opt.zero_grad()#后向传播loss.backward()#优化opt.step()#显示最终计算出来的w1.w2....w15和b的数值,
print(model.state_dict())#查看实际预测结果,这里比较时都用的numpy
print((model(X).data.numpy() > 0.5).astype('int') == Y.numpy())
#预测模型正确率直接求均值即可得
print(((model(X).data.numpy() > 0.5).astype('int') == Y.numpy()).mean)

这里面损失,优化,后向传播概念可以看“反向传播算法”过程及公式推导(超直观好懂的Backpropagation)_aift的博客-CSDN博客_反向传播算法

反向传播详解_weixin_40788815的博客-CSDN博客_反向传播

python (2) 逻辑回归实例相关推荐

  1. MATLAB逻辑回归实例及代码

    MATLAB逻辑回归实例及代码 逻辑回归基本流程: 注:回归系数W更新公式写错了,应该是减号,错写成加号了. 训练数据(包含训练样本及对应的标签)百度云链接:https://pan.baidu.com ...

  2. python实现逻辑回归三种方法_纯Python实现逻辑回归

    前几天使用后sklearn实现了逻辑回归,这里用纯python实现逻辑回归. 首先,我们定义一个sigmoid函数 def sigmoid(inX): #sigmoid函数 return 1.0/(1 ...

  3. python实现逻辑回归代码_python如何实现逻辑回归 python实现逻辑回归代码示例

    python如何实现逻辑回归?本篇文章小编给大家分享一下python实现逻辑回归代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 代码如下: i ...

  4. 用python做逻辑回归_用Python来实现逻辑回归

    1,什么是逻辑回归(Logistic Regression) 逻辑回归用于二分分类问题,二分分类问题的标签值只有两个,比如 对于一首歌喜欢或者不喜欢:对于一件商品,喜欢或者不喜欢:对于某个考生,考试成 ...

  5. python实现逻辑回归算法_逻辑回归算法的实现

    前言 在之前的学习中,我们已经学习了逻辑回归算法的具体数学原理及其简单的推导过程,现在,我们可以用python实现逻辑回归的算法了. 环境 python3.6 jupyter-notebook 绘制数 ...

  6. Python实现逻辑回归实战(完整版)--内附详细代码

    Hello大家!上一篇小A已经详细的为大家讲解了逻辑回归的原理和数学推导,但是对于学习人工智能来说仅仅学会原理是远远不够的,还必须要动手实践,必须要学会使用编程语言将算法实现.所以,今天我就来为大家展 ...

  7. python对逻辑回归进行显著性_python sklearn库实现简单逻辑回归的实例代码

    Sklearn简介 Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression).降维(Dimensionality Red ...

  8. Python实现逻辑回归

    预备资源 Python的几个包: numpy: Python的语言扩展,定义了数字的数组和矩阵 pandas: 直接处理和操作数据的主要package statsmodels: 统计和计量经济学的pa ...

  9. python实现逻辑回归的流程_逻辑回归原理及其python实现

    September 28, 2018 7 min to read 逻辑回归原理及其python实现 原理 逻辑回归模型: $h_{\theta}(x)=\frac{1}{1+e^{-{\theta}^ ...

最新文章

  1. 推荐一个学算法的 GitHub 项目
  2. aes加密结果不一样_医生告诉你:家用血糖仪和静脉血糖结果不一样,应该相信哪一个?...
  3. Spring boot(十二):Spring boot 如何测试、打包、部署
  4. 老生常谈session,cookie的区别,安全性
  5. Spring的@Transactional注解踩坑
  6. linux输入过的命令行,LINUX中命令行的历史记录和编辑
  7. mac启动盘已满,如何“瘦身”
  8. vivadohlsdsp_FPGA硬件加速学习vivado hls-----------------卷积加速
  9. 跟对人,走对路,做对事!
  10. Ubuntu8.04上用飞信 libfetion
  11. java 素数 五行_(1)转载:八卦数论(二)
  12. 利用AD13设计PCB的问题总结11-20
  13. sop流程图模板_sop是什么意思(sop标准作业流程模板)
  14. C语言10.10,查找英文的星期几
  15. oracle12c 配置监听,redhat上oracle 12c配置监听
  16. linux c设置打印机属性,如何恢复打印机属性的“功能”部分
  17. macOS Ventura 13.1 系统问题:掉电快 充电慢
  18. cenos需要注意的小功能
  19. 计算机储存配置信息,怎么看电脑配置信息
  20. 使用EasyExcel导入表格实现xlsx文件批量插入-----linux的mysql

热门文章

  1. python3 多表入库再优化
  2. 信安Note_day15
  3. 小米路由器3G刷OpenWrt或ImmortalWrt的详细步骤
  4. 两个MATLAB在线工具,画图啥的都不用安装了
  5. python pip-什么是pip?Python新手入门指南
  6. 网站后台 英文用户名不区分大小写都可以登录...
  7. 搜狗浏览器屏蔽广告插件_“云法庭”里“云勘验” 法院开审搜狗浏览器插件屏蔽优酷视频广告案...
  8. 互联网产品设计进阶(8)读别人的详细设计说明书
  9. Codeforces - 35D. Animals - 贪心+排序
  10. Cache实现HTTP服务三