首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的网络为mean_squared_error做了优化,但是预测是无用的。

我的网络为mean_squared_error做了优化,但是预测是无用的。
EN

Data Science用户
提问于 2019-06-13 06:17:04
回答 1查看 44关注 0票数 0

在阅读了tensorflow的教程之后,我决定做自己的项目。为此,我做了以下工作:

  • 我从一个名为“电影网”的波兰网站上刮过电影评论。我得到了一个数据集o 5400电影评论,评分范围为1-10。
  • 我使用“Morfeusz”python绑定来标记文本并将其命名。我已经删除了最基本的句号。
  • 我将大多数使用的10000个引理映射到数字,并将数据放在列表中。
  • 将数据随机分成两个相等的集合。
  • 我的培训数据是电影评论引引器中填充了0(如教程中所示)。预期的结果是评级。
  • 我的模型是
代码语言:javascript
复制
    vocab_size = 10000

    model = keras.Sequential()
    model.add(keras.layers.Embedding(vocab_size, 16))
    model.add(keras.layers.GlobalAveragePooling1D())
    model.add(
        keras.layers.Dense(16, activation=tf.nn.relu)
    )
    model.add(keras.layers.Dense(1))

    optimizer = tf.keras.optimizers.RMSprop(0.001)


    model.compile(optimizer=optimizer, 
              loss='mean_squared_error',
              metrics=['accuracy'])

在运行优化过程之后,我看到损失度量下降得相当快。然而,精度远低于0.1,在我检查了这个网络的预测之后,它们是无用的。该模型预测所有收视率在6-7之间。因此,我理解网络“优化”总是简单地猜测平均值。

我不知道下一步该做些什么。我的模型对这个任务错了吗?我应该以某种方式使我的数据正常化或增加吗?还是数据集的大小太小,无法得到任何有意义的结果?

编辑:这是指向我的数据集和生成它的脚本的链接:https://www.dropbox.com/s/csyo934hhtbxxu9/fw-data.tar.bz2?dl=0

EN

回答 1

Data Science用户

发布于 2019-06-13 12:50:20

您现在正在做的是回顾分数的回归,因此准确性并不是评估绩效的合适指标。您的模型正在优化均方误差,因此它预测(几乎)平均复习分数是有意义的。

由于您对评级预测的准确性感兴趣,因此应将输出层设置为包含10个可能的输出的softmax层,如下所示:

代码语言:javascript
复制
model.add(keras.layers.Dense(10), activation='softmax')

然后,您可以优化您的模型的categorical_crossentropy,并报告准确性。这样,你就可以对收视率进行分类。

代码语言:javascript
复制
model.compile(optimizer=optimizer, 
              loss='categorical_crossentropy',
              metrics=['accuracy'])
票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/53674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档