-
大小: 13KB文件类型: .zip金币: 2下载: 1 次发布日期: 2021-06-06
- 语言: Python
- 标签: 二分类 tensorflow
资源简介
使用tensorflow集成的神经网络实现的基于糖尿病数据的二分类的python实现,内含代码、分配好的数据集以及调参过程,代码中有详细的注释以及可视化操作。欢迎下载交流!
代码片段和文件信息
# -*- coding: utf-8 -*-
“““
Created on Fri Oct 26 14:56:45 2018
@author: Fang
“““
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
#from sklearn.preprocessing import StandardScaler #标准化
#from sklearn.preprocessing import Normalizer
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import confusion_matrix
def load_data():
‘‘‘
加载训练集和测试集,并将数据转化为矩阵
training_data 训练集,包含461条数据
test_data 测试集,包含307条数据
‘‘‘
file1 = ‘diabetes_data.txt‘
p = open(file1)
lines = p.readlines()
n = len(lines)
datamat = np.zeros((n9))
row = 0
for i in lines:
i = i.strip().split(‘‘)
datamat[row:] = i[:]
row += 1
training_data = datamat[::]
X = training_data[:1:8]
file2 = ‘diabetes_test.txt‘
p1 = open(file2)
line = p1.readlines()
n1 = len(line)
datamat2 = np.zeros((n19))
row1 = 0
for i in line:
i = i.strip().split(‘‘)
datamat2[row1:] = i[:]
row1 += 1
test_data = datamat2[::]
Y = test_data[:1:8]
return training_datatest_data
if __name__ == “__main__“:
#定义神经网络的参数
learning_rate = 0.009 #学习率
training_step = 7000 #训练迭代次数
testing_step = 6000 #测试迭代次数
display_step = 1000 #每多少次迭代显示一次损失
#定义输入和输出
x = tf.placeholder(tf.float32shape=(None8)name=“X_train“)
y = tf.placeholder(tf.float32shape=(None1)name=“Y_train“)
#定义模型参数
w = tf.Variable(tf.random_normal([81]stddev=1.0seed=1))
b = tf.Variable(tf.random_normal([1]stddev=1.0seed=1))
#定义神经网络的前向传播过程
#Model = tf.nn.sigmoid(tf.matmul(xw) + b)
Model = tf.nn.tanh(tf.matmul(xw) + b)
#Model = tf.nn.relu(tf.matmul(xw) + b)
“““
对模型进行优化,将Model的值加0.5之后进行取整,
方便测试准确率(若Model>0.5则优化后会取整为1,反之会取整为0)
“““
model = Model + 0.5
model = tf.cast(modeltf.int32)
y_ = tf.cast(ytf.int32)
#Dropout操作:用于防止模型过拟合
keep_prob = tf.placeholder(tf.float32)
Model_drop = tf.nn.dropout(Modelkeep_prob)
#损失函数:交叉熵
cross_entropy = -tf.reduce_mean(y * tf.log(tf.clip_by_value(Model1e-101.0))+(1-y) * tf.log(tf.clip_by_value(1-Model1e-101.0)))
“““
优化函数
即反向传播过程
主要测试了Adam算法和梯度下降算法,Adam的效果较好
“““
#优化器:使用Adadelta算法作为优化函数,来保证预测值与实际值之间交叉熵最小
#optimizer = tf.train.AdamOptimizer(learning_rate).minimize(cross_entropy)
#优化器:梯度下降
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cross_entropy)
#加载数据and数据预处理
#加载
training_datatest_data = load_data()
#训练集
X_train = training_data[::8]
Y_train = training_data[:8:9]
#测试集
X_test = test_data[::8]
Y_test = test_data[:8:9]
#X_test_Mn = StandardScaler().fit_transform(X_test)
b = MinMaxScaler()
X_test_cen = b.fit_transform(X_test)
#1、标准化
#X_train_Mn = StandardScaler().fit_transform(X_train)
#2、正则化 norm为正则化方法:‘l1‘‘l2‘
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-11-24 14:55 基于tensorflow的二分类\
文件 14268 2018-10-22 22:01 基于tensorflow的二分类\diabetes_data.txt
文件 9507 2018-10-23 22:00 基于tensorflow的二分类\diabetes_test.txt
文件 6861 2018-11-12 09:30 基于tensorflow的二分类\tf01.py
文件 1452 2018-11-08 20:15 基于tensorflow的二分类\调参过程.txt
- 上一篇:python多目标优化求解
- 下一篇:Python手机短信轰炸.py
相关资源
- tensorflow制作自己的灰度图像数据集并
- anaconda下安装tensorflow(注:不同版本
- 北京大学曹健老师-人工智能实践:
- Deep Learning With Python - Jason Brownlee
- Python-自然场景文本检测PSENet的一个
- Python-高效准确的EAST文本检测器的一个
- Python-TensorFlow弱监督图像分割
- Python-基于tensorflow实现的用textcnn方法
- Python-subpixel利用Tensorflow的一个子像素
- 【官方文档】TensorFlow Python API docume
-
tensorflow画风迁移代码 st
yle transfer - 简单粗暴 TensorFlow
- [PDF] Reinforcement Learning With Open AI Tens
- tensorflow目标检测代码
- 基于Python的手写字体识别系统
- 基于Tensorflow的人脸识别源码
- python TensorFlow 官方文档中文版
- Python-在TensorFlow中实现实现图像卷积网
- tensorflow-1.9.0-cp37-cp37m-win_amd64.whl
- Faster-RCNN-TensorFlow-Python3.5-master
- 聊天机器人tensorflow
- caffe模型转化为tensorflow模型
- Python-一个非常简单的BiLSTMCRF模型用于
- Python-Tensorflow仿AlphaGo框架实现的AI围棋
- Mask R-CNN源码(TensorFlow版本)
- 基于python3 tensorflow DBN_and_RNN的实现
- tensorflow-0.8.0-cp34-cp34m-linux_x86_64.whl
- Hands-On Machine Learning with Scikit-Learn an
- python3中文识别词库模型
- tensorflow -1.4-py2.7 -cpu 版本
评论
共有 条评论