逻辑回归的 tensorflow 实现 | 学习笔记

简介: 快速学习逻辑回归的 tensorflow 实现

开发者学堂课程【Tensorflow2.0入门与实战逻辑回归的tensorflow实现】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/664/detail/11104


逻辑回归的tensorflow实现


使用 pandas 读取数据集

1、引入tensorflow 、pandas、numpy、matplotlib

将 credit 数据集读取使用 pandas

credit,data head 显示数据,head 显示前五行,数据无表头需要添加一个参数 header=None。15列特征,目标值是第15列。

image.png

选取15列,使用 value_counts

In : data.iloc[:,-1].value_counts()

Out:1   357

-1  296

Name:15,dtype:int64

标志为1的有357个数据,标志为-1有296个数据。

提取x,y的数据,x为前十四列,y为最后一列

x= data.iloc[:,:-1]

y=data.iloc[:,-1].replace(-1, 0)

最后一列正面数据为1,负面数据-1,将负面数据替换成0。

2、建立顺序模型

model =tf.keras.Sequential()

3、添加层

第一层有多少隐藏单元数是自己设计的,第一层要有 input_shape 的形状,数据的形状为15,使用 relu 激活。

第二层开始不需要添加 input_shape,会自己推断,使用 relu 激活。输出层输出值为1逻辑回归最后用 sigmoid 激活,sigmoid 映射出一个从0到1的概率值。

model.add(tf.keras.layers.Dense(4,input_shape=(15,),activation='relu’))

model.add(tf.keras.layersDense(4,activation='relu’))

model.add(tf.keras.layers.Dense(1,activation='sigmoid’))

4、model summary

 image.png

第一层 Dense,第二层 Dense,第三层 Dense 输出层输出维度为1。

5、model.compile 编译

规定 optimizer,optimizer=adam。规定 loss 当使用概率时使用交叉熵,二元概率用 binary_crossentropy 计算交叉熵,metrics在运行过程中会计算正确率情况,metric 可测量binary loss、交叉熵的损失值、正确率

model.compile(optimizer='adam',

loss='binary_crossentropy',

metrics=['acc']

6、history model训练

数据x,y训练100个 epochs,loss 的值随着训练不断下降。随着训练的进行,正确率不断提升。

history=model.fit(x,y,epochs=100

Epoch 1/100

653/653[==============================]-0s222us/sa

ple-l

oss:283.7279-acc:0.5467

Epoch 2/100

653/653[==============================]-0s29us/sampl

e-l

oss:257.2484-acc:0.5467

Epoch 3/100

653/653[==============================]-0s33us/sampl

e-lo

ss:233.0358-acc:0.5467

训练过程收集进 history 里,history 里有一个参数 history.history,history.history 是一种字典,它的 keys 记录了 loss 和 acc 的变化。

可以将 loss 和 acc 的变化取出绘图。

plt.plot 用 history.history get 方法取出 loss 值。x轴是训练的  epochs,y 轴是 loss。

 image.png

运行了45个 epochs 后 loss 不再下降,后面的训练步骤没有任何意义。

acc 的值

image.png

刚开始有下降的过程然后上升,到100  epochs 任然有些上升但上升的趋势不明显。

相关文章
|
1月前
|
缓存 TensorFlow 算法框架/工具
TensorFlow学习笔记(一): tf.Variable() 和tf.get_variable()详解
这篇文章详细介绍了TensorFlow中`tf.Variable()`和`tf.get_variable()`的使用方法、参数含义以及它们之间的区别。
71 0
|
1月前
|
TensorFlow 算法框架/工具
Tensorflow学习笔记(二):各种tf类型的函数用法集合
这篇文章总结了TensorFlow中各种函数的用法,包括创建张量、设备管理、数据类型转换、随机数生成等基础知识。
34 0
|
人工智能 TensorFlow 算法框架/工具
人工智能|Tensorflow-2.0学习笔记:基础操作篇一
人工智能|Tensorflow-2.0学习笔记:基础操作篇一
127 0
|
机器学习/深度学习 数据采集 自然语言处理
直观理解并使用Tensorflow实现Seq2Seq模型的注意机制(上)
直观理解并使用Tensorflow实现Seq2Seq模型的注意机制
273 1
直观理解并使用Tensorflow实现Seq2Seq模型的注意机制(上)
|
机器学习/深度学习 数据可视化 TensorFlow
使用TensorFlow Probability实现最大似然估计
TensorFlow Probability是一个构建在TensorFlow之上的Python库。它将我们的概率模型与现代硬件(例如GPU)上的深度学习结合起来。
153 1
|
机器学习/深度学习 TensorFlow 算法框架/工具
优达学城深度学习之六——TensorFlow实现卷积神经网络
优达学城深度学习之六——TensorFlow实现卷积神经网络
优达学城深度学习之六——TensorFlow实现卷积神经网络
|
机器学习/深度学习 存储 TensorFlow
直观理解并使用Tensorflow实现Seq2Seq模型的注意机制(下)
直观理解并使用Tensorflow实现Seq2Seq模型的注意机制
206 0
直观理解并使用Tensorflow实现Seq2Seq模型的注意机制(下)
|
TensorFlow 算法框架/工具 计算机视觉
TensorFlow 实现VGG16图像分类
TensorFlow 实现VGG16图像分类
TensorFlow 实现VGG16图像分类
|
机器学习/深度学习 TensorFlow 算法框架/工具
Whale 基于 Tensorflow 深度学习分布式训练框架|学习笔记
快速学习 Whale 基于 Tensorflow 深度学习分布式训练框架。
493 0
Whale 基于 Tensorflow 深度学习分布式训练框架|学习笔记
|
机器学习/深度学习 存储 算法
TensorFlow 实现图像分类|学习笔记
快速学习 TensorFlow 实现图像分类。
168 0
TensorFlow 实现图像分类|学习笔记

相关实验场景

更多