数学建模之Python-tensorflow神经网络实现二分类预测

题目要求

五列值 标签为01 预测病马的死亡率。
原本使用了logitic逻辑回归模型 预测了结果 但没有概率 后来尝试借鉴大佬的手撸代码 结果不太对
后来又学习到大佬的tensorflow神经网络 可以正确预测出概率 并画出正确率图,且正确率很高

数据集

data_horse.csv(https://download.csdn.net/download/weixin_45678130/33622466
在这里插入图片描述

代码:

import tensorflow as tf

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

frTrain = pd.read_csv("data_horse.csv",encoding="ANSI")
frTest = pd.read_csv("data_horse.csv",encoding="ANSI")
train_image = frTrain.iloc[:357, 0:5].values
train_lable = frTrain.iloc[:357, 5].values
test_image = frTest.iloc[357:, 0:5].values
test_lable = frTest.iloc[357:, 5].values

# print(train_image.size)

# 创建模型
model = tf.keras.Sequential()

model.add(tf.keras.layers.Dense(256, input_shape=(356, 5), activation='relu'))  # 第一层
model.add(tf.keras.layers.Dense(128, activation='relu'))  # 第二层   自动推断输入层
model.add(tf.keras.layers.Dense(64, activation='relu'))  # 第二层   自动推断输入层
model.add(tf.keras.layers.Dense(1, activation='sigmoid'))  # 第三层 激活函数选择sigmod  将输出结果映射到sigmoid函数上 输出一个概率
# 编译  =---优化器,损失函数,评估函数
model.compile(optimizer='adam',  # rmspropadam
              loss='binary_crossentropy',
              metrics=['acc']

              )
# 训练模型---输入参数
history = model.fit(train_image, train_lable, epochs=1100)  # epochs训练迭代轮次
# 保存模型
model.save("my_model3")
# 调用保存的模型
reconstructed_model = tf.keras.models.load_model("my_model3")

# print(reconstructed_model.predict(test_image))

gailv = reconstructed_model.predict(test_image)

# 输出概率后6位小数
for i in gailv:
    print("%.6f" % i)

print(gailv)

for i in gailv:
    if i > 0.5:
        print("1")
    else:
        print("0")

# 绘制正确率折线图
plt.plot(history.epoch, history.history.get('acc'))

plt.show()

补充:
在这里插入图片描述
如上sigmoid代表二分类,如果需要多分类需要其他参数
在这里插入图片描述
如上代表356行5列训练集 需要适当调整好自己的参数

运行截图:

代表1000代时正确率已经很高了 接近于1
在这里插入图片描述
如下为预测集最后的概率预测结果
在这里插入图片描述

  • 9
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: Python-TensorFlow的版本对应关系如下: | TensorFlow版本 | Python版本 | | -------------- | ---------- | | 2.5.x | 3.6-3.9 | | 2.4.x | 3.5-3.8 | | 2.3.x | 3.5-3.8 | | 2.2.x | 3.5-3.8 | | 2.1.x | 3.5-3.7 | | 2..x | 3.5-3.7 | | 1.15.x | 2.7, 3.3-3.7 | 注意:Python 3.8和3.9在TensorFlow 1.15和2.中不受支持。 ### 回答2: Python-TensorFlow是Google公司开发的深度学习框架,提供了一系列的API,可以帮助开发者快速、高效地构建和训练深度神经网络。不同的Python-TensorFlow版本对应了不同的功能和性能,因此选择合适的版本对于深度学习的研究和应用尤为重要。 以下是Python-TensorFlow对应版本的介绍: 1. TensorFlow 1.x版本 TensorFlow 1.x版本是第一个稳定版本,包含了许多重要的功能,如静态图形优化器、多GPU支持和分布式训练。1.5版本还引入了TensorFlow的Eager execution机制,使得开发者可以像使用numpy一样快速迭代实验。 2. TensorFlow 2.x版本 TensorFlow 2.x版本是近期推出的一个重要版本,它强调了易用性、统一性和可扩展性。TF2.x取消了静态图形模式,仅支持动态图形模式,使得代码的编写和调试更加方便,同时还支持Keras API,使得模型的搭建更加简单,更加易于入门。 3. TensorFlow Lite TensorFlow Lite是一种专门针对移动设备和嵌入式设备的轻量级版本,它支持多种硬件平台的端侧部署。TensorFlow Lite内置了一系列的优化算法,使得在较低的计算资源下也能够实现高效的推理。 总之,选择合适的Python-TensorFlow版本对于深度学习的发展和应用至关重要。不同版本的TensorFlow支持不同的功能和特性,开发者应该结合具体需求进行选择,以便在开发和应用中发挥更好的性能和效果。 ### 回答3: Python-TensorFlow是Google开发的一种机器智能软件。它可以通过Python语言编写程序,并可用于设计、构建和训练各种类型的深度学习算法。TensorFlow是当前工业级别最流行的深度学习库之一。 Python-TensorFlow的各个版本都有各自的优势和劣势。以下是一些流行版本的简要介绍: 1. TensorFlow 1.0-1.5版本:这些版本是最早的版本。基本上是机器智能开发工具包的第一个版本,提供了一个庞大的机器智能生态系统。此版本重点关注建模和设计方面的问题。TensorFlow 1.0-1.5版本同样支持构建卷积神经网络、递归神经网络和其他深度学习模型。 2. TensorFlow 2.0版本:这个版本发布于2019年底,是TensorFlow的最新版本。TensorFlow 2.0在使用方面更为便捷,同时采用了更简单的API。此版本具有更模块化的架构,使用户能够更加容易地调试和优化他们的算法。TensorFlow 2.0还增加了用于图像分类、自然语言处理和情感分析等应用的新层和模型。 3. TensorFlow 1.14-1.15版本:这些版本是TensorFlow 1.x分支的最后两个版本。在这些版本中,Google出现了可重复的实验功能,以确保用户能够跟踪和管理自己的实验过程。 对于选择哪个版本,应该看到TensorFlow的上下文和需求,同时需注意版本之间的差异。同时,查看TensorFlow官网可以找到每个版本的详细说明。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值