tensorflow2知识总结---4、逻辑回归实例
一、总结
一句话总结:
也就是将损失函数设置为binary_crossentropy即可:model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['acc'])
1、把tensorflow2的history对象的epoch和损失用图的方式展示出来?
plt.plot(history.epoch,history.history.get('loss'))
# 把epoch当横左边,把loss当纵坐标
二、逻辑回归实例
博客对应课程的视频位置:
In [1]:
import tensorflow as tf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
In [2]:
# 表示没有表头,如果不设置header=None,则第一行数据会变成表头
data = pd.read_csv('dataset/credit-a.csv',header=None)
data
Out[2]:
0-14列是特征,第15列是目标值
In [3]:
# 前5行
data.head()
Out[3]:
In [4]:
data.iloc[:,-1].value_counts()
Out[4]:
In [5]:
# 逗号前面表示取所有行,逗号后面表示取开头到-1列
x = data.iloc[:,:-1]
# 把-1用0来表示
y = data.iloc[:,-1].replace(-1,0)
# 1和-1适合支持向量机算法
In [6]:
x
Out[6]:
In [7]:
y
Out[7]:
In [8]:
model = tf.keras.Sequential()
# 中间4个神经元
model.add(tf.keras.layers.Dense(4,input_shape=(15,),activation='relu'))
# 第二层不需要告诉input_shape,他会自己推断
# 第一个隐藏层
model.add(tf.keras.layers.Dense(4,activation='relu'))
# 输出层
model.add(tf.keras.layers.Dense(1,activation='sigmoid'))
model.summary()
第一层64个节点 等于 15*4+4
第二层 20=4*4+4
In [9]:
# metrics=['acc'] 每次运算完毕,计算正确率
model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['acc'])
history = model.fit(x,y,epochs=100) #epochs表示训练的次数
In [10]:
history.history.keys()
Out[10]:
In [11]:
# 把epoch当横左边,把loss当纵坐标
plt.plot(history.epoch,history.history.get('loss'))
Out[11]:
In [12]:
plt.plot(history.epoch,history.history.get('acc'))
Out[12]:
In [ ]: