1. from keras.datasets import reuters
  2. import numpy as np
  3. from keras.utils.np_utils import to_categorical
  4. from keras import layers
  5. from keras import models
  6. import matplotlib.pyplot as plt
  7. def vectorize_sequences(sequences,dimension = 10000):
  8. result = np.zeros((len(sequences),dimension))
  9. for i in range(len(sequences)):
  10. result[i,sequences[i]] = 1
  11. return result
  12. #8982条训练数据,2246条测试数据
  13. (x_train, y_train),(x_test, y_test) = reuters.load_data(num_words=10000)
  14. #训练数据向量化
  15. x_train = vectorize_sequences(x_train)
  16. y_train = to_categorical(y_train)
  17.  
  18. network = models.Sequential()
  19. network.add(layers.Dense(64,activation='relu'))
  20. network.add(layers.Dense(64,activation='relu'))
  21. #softmax返回一个概率值,每个概率是分到该类别的可能性
  22. network.add(layers.Dense(46,activation='softmax'))
  23.  
  24. network.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])
  25.  
  26. history = network.fit(x_train,y_train,batch_size=256,epochs=20,validation_split=0.25)
  27.  
  28. history_dict = history.history
  29. loss = history_dict['loss']
  30. val_loss = history_dict['val_loss']
  31. acc = history_dict['acc']
  32. val_acc = history_dict['val_acc']
  33.  
  34. epochs = range(1,21)
  35. #loss的图
  36. plt.subplot(121)
  37. plt.plot(epochs,loss,'g',label = 'Training loss')
  38. plt.plot(epochs,val_loss,'b',label = 'Validation loss')
  39. plt.xlabel('Epochs')
  40. plt.ylabel('Loss')
  41. #显示图例
  42. plt.legend()
  43.  
  44. plt.subplot(122)
  45. plt.plot(epochs,acc,'g',label = 'Training accuracy')
  46. plt.plot(epochs,val_acc,'b',label = 'Validation accuracy')
  47. plt.xlabel('Epochs')
  48. plt.ylabel('accuracy')
  49. plt.legend()
  50. plt.show()

在第9轮以后,随之模型的训练,训练集的loss不断减少,但是验证集的loss开始增加,这种情况发生了过拟合,把轮次改成9即可

reuters-多分类问题的更多相关文章

  1. [Deep-Learning-with-Python]基于Kears的Reuters新闻分类

    Reuters数据集下载速度慢,可以在我的repo库中找到下载,下载后放到~/.keras/datasets/目录下,即可正常运行. 构建神经网络将路透社新闻分类,一共有46个类别.因为有多个类别,属 ...

  2. 浅谈NLP 文本分类/情感分析 任务中的文本预处理工作

    目录 浅谈NLP 文本分类/情感分析 任务中的文本预处理工作 前言 NLP相关的文本预处理 浅谈NLP 文本分类/情感分析 任务中的文本预处理工作 前言 之所以心血来潮想写这篇博客,是因为最近在关注N ...

  3. Python深度学习案例2--新闻分类(多分类问题)

    本节构建一个网络,将路透社新闻划分为46个互斥的主题,也就是46分类 案例2:新闻分类(多分类问题) 1. 加载数据集 from keras.datasets import reuters (trai ...

  4. keras框架下的深度学习(二)二分类和多分类问题

    本文第一部分是对数据处理中one-hot编码的讲解,第二部分是对二分类模型的代码讲解,其模型的建立以及训练过程与上篇文章一样:在最后我们将训练好的模型保存下来,再用自己的数据放入保存下来的模型中进行分 ...

  5. 神经网络、logistic回归等分类算法简单实现

    最近在github上看到一个很有趣的项目,通过文本训练可以让计算机写出特定风格的文章,有人就专门写了一个小项目生成汪峰风格的歌词.看完后有一些自己的小想法,也想做一个玩儿一玩儿.用到的原理是深度学习里 ...

  6. 开源 iOS 项目分类索引大全 - 待整理

    开源 iOS 项目分类索引大全 GitHub 上大概600个开源 iOS 项目的分类和介绍,对于你挑选和使用开源项目应该有帮助 系统基础库 Category/Util sstoolkit 一套Cate ...

  7. Atitit 图像处理和计算机视觉的分类 三部分 图像处理 图像分析 计算机视觉

    Atitit 图像处理和计算机视觉的分类 三部分 图像处理 图像分析 计算机视觉 1.1. 按照当前流行的分类方法,可以分为以下三部分:三部分 图像处理 图像分析 计算机视觉1 1.2. 图像处理需要 ...

  8. Atitit 知识管理的重要方法 数据来源,聚合,分类,备份,发布 搜索

    Atitit 知识管理的重要方法 数据来源,聚合,分类,备份,发布 搜索 1.1. Rss 简易信息聚合(也叫聚合内容 Really Simple Syndication1 1.1. Rss 简易信息 ...

  9. 8.SVM用于多分类

    从前面SVM学习中可以看出来,SVM是一种典型的两类分类器.而现实中要解决的问题,往往是多类的问题.如何由两类分类器得到多类分类器,就是一个值得研究的问题. 以文本分类为例,现成的方法有很多,其中一劳 ...

  10. SVM分类与回归

    SVM(支撑向量机模型)是二(多)分类问题中经常使用的方法,思想比较简单,但是具体实现与求解细节对工程人员来说比较复杂,如需了解SVM的入门知识和中级进阶可点此下载.本文从应用的角度出发,使用Libs ...

随机推荐

  1. 记一次在咸鱼上购买 MacBook Pro 的经历

    前言 以前一直用的是 windows 的,但是最近特别想买个 macOS 的.其实不是为了其他什么目的,只是涉及到开发 macOS更接近 linux 系统,一直没使用过所以就想尝试体验下,而且现在很多 ...

  2. 随心测试_软测基础_004<测试人员工作职责>

    接上篇续,依据_软测基础体系:<依据不同的测试对象,选取适合的方法,按照设计的流程完成测试工作,检验整个过程是否达到测试的目的>.“学以致用”,实践于工作职责 常见面试题: —— 诸如以下 ...

  3. ##Django中Application labels aren't unique解决方法##

    pip更新了所有插件,发现了按平常编码遇到些问题,记录下. Django错误 django.core.exceptions.ImproperlyConfigured: Application labe ...

  4. Kafka简介及使用PHP处理Kafka消息

    Kafka简介及使用PHP处理Kafka消息 Kafka 是一种高吞吐的分布式消息系统,能够替代传统的消息队列用于解耦合数据处理,缓存未处理消息等,同时具有更高的吞吐率,支持分区.多副本.冗余,因此被 ...

  5. Git 本地保存账号密码的删除或修改

    转自:https://blog.csdn.net/lwqldsyzx/article/details/61228299 Git 本地拉取代码时需要输入用户名和密码时,会自动将用户名密码信息保存起来.需 ...

  6. 02——Solr学习之Solr安装与配置(linux上的安装)

    借鉴博客:https://www.jianshu.com/p/1100f54fcbd8 https://www.cnblogs.com/jepson6669/p/9134652.html 1.准备一个 ...

  7. Linux(Ubuntu)------常用命令汇总

    文件 unzip -O cp936 file.zip unzip -O cp936 file.zip -d dir tar -zxvf file -C dir mv [-i ] file1 file2 ...

  8. CountDownLatch类实现同步

    首先我们看一个普通的多线程代码 class MyThread implements Runnable { @Override public void run() { System.out.printl ...

  9. cocos 常用组件

    前面的话 本文将详细介绍 cocos 中的常用组件 Sprite [概述] Sprite(精灵)是 2D 游戏中最常见的显示图像的方式,在节点上添加 Sprite 组件,就可以在场景中显示项目资源中的 ...

  10. vim主题颜色

    1.VIM主题 查看Vim示例当前的颜色主题 打开一个Vim窗口,输入命令:color或:colorscheme后回车查看当前的颜色主题. Vim实例中设置颜色主题 输入命令"colorsc ...