数学建模之Python-tensorflow神经网络实现二分类预测
tensorflow
一个面向所有人的开源机器学习框架
项目地址:https://gitcode.com/gh_mirrors/te/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
如下为预测集最后的概率预测结果
GitHub 加速计划 / te / tensorflow
184.55 K
74.12 K
下载
一个面向所有人的开源机器学习框架
最近提交(Master分支:2 个月前 )
a49e66f2
PiperOrigin-RevId: 663726708
2 个月前
91dac11a
This test overrides disabled_backends, dropping the default
value in the process.
PiperOrigin-RevId: 663711155
2 个月前
更多推荐
已为社区贡献3条内容
所有评论(0)