深度学习基础
神经网络入门
新闻分类:多分类问题
- 构建一个网络,将路透社新闻划分为46个互斥的主题。
- 因为有多个类别,所以这是多分类(multiclass classification)问题的一个例子。
- 因为每个数据点只能划分到一个类别,所以更具体地说,这是单标签、多分类(single-label, multiclass classification)问题的一个例子。
- 如果每个数据点可以划分到多个类别(主题),那它就是一个多标签、多分类(multilabel, multiclass classification)问题。
路透社数据集
-
使用路透社数据集,它包含许多短新闻及其对应的主题,由路透社在1986年发布。
- 它是一个简单的、广泛使用的文本分类数据集。
- 它包括46个不同的主题:某些主题的样本更多,但训练集中每个主题都有至少10个样本。
- 与 IMDB 和 MNIST 类似,路透社数据集也内置为 Keras 的一部分。
-
与 IMDB 数据集一样,参数 num_words=10000 将数据限定为前10000个最常出现的单词。我们有8982个训练样本和2246个测试样本。
# 加载路透社数据集 from keras.datasets import reuters (train_data, train_labels), (test_data, test_labels) = reuters.load_data(num_words=10000) >>> len(train_data) 8982 >>> len(test_data) 2246
-
与 IMDB 评论一样,每个样本都是一个整数列表(表示单词索引)。
>>> train_data[10] [1, 245, 273, 207, 156, 53, 74, 160, 26, 14, 46, 296, 26, 39, 74, 2979, 3554, 14, 46, 4689, 4329, 86, 61, 3499, 4795, 14, 61, 451, 4329, 17, 12]
-
你可以用下列代码将索引解码为单词:
# 将索引解码为新闻文本 word_index = reuters.get_word_index() reverse_word_index = dict([(value, key) for (key, value) in word_index.items()]) ''' 注意,索引减去了3,因为0、1、2是为 “padding”(填充)、“start of sequence”(序列开始)、 “unknown”(未知词)分别保留的索引 ''' decoded_newswire = ' '.join([reverse_word_index.get(i - 3, '?') for i in train_data[0]])
-
样本对应的标签是一个0~45范围内的整数,即话题索引编号。
>>> train_labels[1