糖尿病预测(深度学习pytorch实现-最新)

该文介绍了一个使用Python和PyTorch对糖尿病进行预测的项目。数据来源于Kaggle,通过训练集与测试集的划分,利用多层前馈神经网络进行建模,以Sigmoid为激活函数,BCELoss为损失函数,SGD为优化器。在训练结束后,模型最高达到75%的准确率,但由于数据量有限,存在过拟合问题。

        本次做的项目是糖尿病的预测,也是来自kaggle上面的一个小项目。根据一个人的怀孕次数、血糖、血压、皮肤厚度、胰岛素指标、身体质量指数、糖尿病谱系指数、年龄等身体参数来预测一个人是否患有糖尿病。

        老规矩,还是先讲数据集,数据集来自kaggle,这里附上链接(糖尿病数据集)。数据集是一个文本文件,总共有769行、9列数据。除第一行外,所有数据都是单精度浮点数,其中第一行是对数据集中各项身体参数的说明,所以在训练的时候要把第一行数据删除。数据集中前8列是上述的各项身体指标,最后一列是输出结果(标签),0表示未患有糖尿病,1表示患有糖尿病。

        接下来是训练过程。第一步,导入需要用到的python包,这里我们要用numpy读取文本文件,DataLoader用来加载数据集,Dataset用来准备数据集,其中Dataset是一个抽象类,只能被继承,所以导入了之后,后面我们还要自己重写Dataset。

import torch
import numpy as np  # 要用numpy读取文本数据
from torch.utils.data import DataLoader
from torch.utils.data import Dataset

        第二步,重写Dataset,准备数据集。这里我们把用于处理训练集的数据集处理器命名为TrainDataset,创建一个类,继承自Dataset。所有继承自Dataset的类,我们都必须重写三个内置方法:__init__、__getitem__、__len__,分别是初始化函数、根据索引取值、获取数据长度。

        在初始化中,我们需要用numpy中的loadtxt读取文本文件,文本文件中数据的分隔符为“,”,所以这里分隔符设置为delimiter=‘,’,数据类型设置为32位浮点数。通过这个操作,把文本文件加载成了一个768行*9列的numpy矩阵。其中前面8列是训练数据,最后一列是标签,所以我们用python的矩阵切片操作把数据集切成x和y,x表示训练数据,y表示标签。因为数据集没有给我们准备测试集,所以我们要自己准备测试集。按照训练集:测试集=9:1的比例,我们去掉数据集中的最后96行作为训练集,把最后96行作为测试集,进行切片。测试集的处理器配置采用相同的操作。

     

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NangoGreen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值