Tensorflow 2.0 ANN模型搭建及逻辑回归实战(信誉卡问题)

Tensorflow 2.0 ANN模型搭建及逻辑回归实战(信誉卡问题)

  • 综述
  • 部分数据展示
  • 代码
  • 结果

综述

本文使用了 TensorFlow 2.0 框架,搭建了 ANN(人工神经网络),实现对信誉卡问题的分析与解决。通过使用 Tf.keras.Sequential 搭建实现非线性逻辑回归模型。并理解针对问题空间如何设计网络结构,以及网络结构涉及到的优化器、损失函数的选择,回调函数的使用。完整数据与代码可在我的GitHub中找到。

部分数据展示

Tensorflow 2.0 ANN模型搭建及逻辑回归实战(信誉卡问题)_第1张图片

代码

# 导入库
import tensorflow as tf
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline

# 读入数据并查看部分内容
data = pd.read_csv('credit-a.csv', header=None)
data.head()

# 将数据最后一列的-1值转为0
data.iloc[:, -1].replace(-1, 0)

# 设置自变量、因变量
x = data.iloc[:, :-1]
y = data.iloc[:, -1].replace(-1, 0)

# 搭建模型
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(4, input_shape = (15,), activation = 'relu'))
model.add(tf.keras.layers.Dense(4, activation = 'relu'))
model.add(tf.keras.layers.Dense(1, activation = 'sigmoid'))    # 逻辑回归,输出层的激活函数activation要为sigmoid
model.summary()

# 设置优化模型、损失函数
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])       
# 逻辑回归损失函数不能使用均方误差mse,使用交叉熵损失函数,本题使用二值交叉熵binary_crossentropy,显示正确率metrics=['acc']

# 模型训练
history = model.fit(x, y, epochs = 2000)

# 结果可视化
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epochs')
plt.plot(history.epoch, history.history.get('loss'))

plt.title('model acc')
plt.ylabel('acc')
plt.xlabel('epochs')
plt.plot(history.epoch, history.history.get('acc'))

# 预测测试
x = data.iloc[1, :-1].to_list()
x = [x]
model.predict(x)

结果

Tensorflow 2.0 ANN模型搭建及逻辑回归实战(信誉卡问题)_第2张图片Tensorflow 2.0 ANN模型搭建及逻辑回归实战(信誉卡问题)_第3张图片Tensorflow 2.0 ANN模型搭建及逻辑回归实战(信誉卡问题)_第4张图片Tensorflow 2.0 ANN模型搭建及逻辑回归实战(信誉卡问题)_第5张图片Tensorflow 2.0 ANN模型搭建及逻辑回归实战(信誉卡问题)_第6张图片Tensorflow 2.0 ANN模型搭建及逻辑回归实战(信誉卡问题)_第7张图片在这里插入图片描述

你可能感兴趣的:(深度学习)