深度学习的二分类问题(电影评论分类)

一、目的

会用神经网络解决基本的分类问题。

二、内容

1、准备数据

2、构建网络解决分类问题

3、验证网络,生成预测结果

三、方法与步骤

1、查看keras库的版本

2、IMDB数据集

2.1、加载IMDB数据集

参数num_words=10000的意思是仅保留训练数据中常见的前10000个单词,低频单词被舍去,可以让向量数据不会太大,便于处理。

train_data和test_data是由评论组成的列表。

2.2、限定为前10000个单词,索引最大不会超过10000

2.3将评论迅速解码为英文单词

3、准备数据

·填充列表,使其具有相同的长度,再将列表转换为整数张量,然后网络第一层使用能处理这种整数张量的层。

·对列表进行one-hot编码,将其转换为0和1组成的向量。

3.1、将整数序列编码为二进制矩阵

3.2、标签向量化

4、构建网络

对于Dense层堆叠,确定两个关键架构

·网络有多少层。

·每层有多少个隐藏单元。

选择架构为:

·两个中间层,每层都有16个隐藏单元、

·第三层输出一个标量,预测当前评论的情感。

4.1、模型定义

使用激活函数(relu):为了得到更丰富的假设空间,从而充分利用多层表示的优势。

4.2、编译模型

用rmsprop优化器和binary_crossentropy损失函数来配置模型

上述代码将优化器、损失函数、指标作为字符串传入

4.3、配置优化器

4.4、使用自定义的损失和指标

5、验证方法

5.1、留出验证集

5.2、训练模型

使用512个样本组成的小批量,将模型训练20个轮次(即对x_train和y_train两个张量中所有样本进行20次迭代),同时监控在留出的10000个样本上的损失和精度。

5.3、查看history字典

字典中包含4个条目,对应训练过程和验证过程中的监控的指标。

5.4、绘制训练损失和验证损失

5.5、绘制训练精度和验证精度

5.6、重新训练一个模型

查看结果

5.7在新数据上生成预测结果

四、思考与总结

·二分类问题通常需要对原始数据进行大量预处理,以便将其转换为张量输入到神经网络中。单词序列可以编码为二进制向量,但也有其他编码方式。

·带有relu激活的Dense层堆叠,可以解决很多种问题。

·对于二分类问题(两个输出类别),网络的最后一层应该只有一个单元并使用sigmoid激活的Dense层,网络输出应该0~1范围内的标量,表示概率。

·对于二分类问题的sigmoid标量输出,应该使用binary_crossentropy损失函数。

·无论问题是什么,rmsprop优化器通常都是足够好的选择。

·一定要监控模型在训练集之外的数据上的性能。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可乐味的小明同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值