具有重复输入的神经网络-Keras

时间:2018-08-10 11:22:52

标签: python neural-network keras

我有一个由N个视频组成的数据集,每个视频都具有一些指标(这些指标将作为神经网络的输入),我的目标是预测一个人在观看视频时的得分。

问题在于,在我的数据集中,每个视频被不同的主题多次观看,因此我被迫重复相同的指标(输入),即观看视频的次数以保持主题给出的所有得分

我建立了一个MLP模型来预测得分。但是当我计算均方根误差时,它总是高于0.7。

我想知道拥有这样的数据集是否会影响模型的性能?我该如何处理呢?

这是数据集的外观:

前5列是输入,最后一列是科目的分数。请注意,所有这些都已标准化。

the first 5 columns are the inputs and the last one is the score of subjects. Note that all of them are normalized

这是我的模特:

 def mlp_model():
    # create model
    model = Sequential()
    model.add(Dense(100,input_dim=5, kernel_initializer='normal', activation='relu'))
    model.add(Dense(100, kernel_initializer='normal', activation='relu'))
    model.add(Dense(100, kernel_initializer='normal', activation='relu'))
    model.add(Dense(100, kernel_initializer='normal', activation='relu'))
    model.add(Dense(1, kernel_initializer='normal'))
    # Compile model
    model.compile(loss='mean_squared_error', optimizer='adam')
    return model

    seed = 100 
    numpy.random.seed(seed)
    myModel = mlp_model()
    myModel.fit(x=x_train, y=y_train, batch_size=10, epochs=45, validation_split=0.3, shuffle=True,callbacks=[plot_losses])
    predictions = myModel.predict(x_test)
    print predictions

1 个答案:

答案 0 :(得分:1)

您的问题陈述表明了设计中的固有缺陷。正如您正确指出的那样,您无法知道用户的行为,如何评价其他视频以及如何评价当前视频。

解释当前输入值以及它们是否可能有所不同将很有帮助。例如,“观看视频所花费的时间”等指标对于不同的用户可能会有所不同。

在更大范围内,尝试回答问题可以回答评分(完全确定的判断),即您是否有可能提出相同的答案(给出相同的输入),并不断获得相同的结果?

由于目前还不是这种情况,我想请您花更多的时间来寻找解决问题的合适方法,例如recommender systems,但这还需要您使用许多不同的输入方法信息。

或者,您可以尝试查找更多输入数据,这些输入数据可以专门标识用户并允许您做出更合适的预测;即使这样,也很难基于此类 proxy 指标进行合理的预测,因为您最终可能会在预处理过程中造成不必要的偏差。

无论如何,用当前输入格式获得更好的结果是不可能的。

相关问题