Debugging Keras:线性回归的低精度

Debugging Keras:线性回归的低精度,debugging,machine-learning,keras,Debugging,Machine Learning,Keras,我正在进行网格搜索,精度很低,希望了解我需要修正的是什么,以便找出相关性。我的直觉告诉我,要么数据本身与我选择的特性没有高度相关性,要么我的输入是垃圾,要么我在模型中的选择是错误的 我想我应该概述一下我这里有什么,以防有人发现我可能错过的东西。如果需要更多信息,请告诉我 模型 网格搜索 尽管在各种选项中进行网格搜索,但我的精度仍在0.0105左右: def GridSearch(self): print("Grid searching.") generator, inputs,

我正在进行网格搜索,精度很低,希望了解我需要修正的是什么,以便找出相关性。我的直觉告诉我,要么数据本身与我选择的特性没有高度相关性,要么我的输入是垃圾,要么我在模型中的选择是错误的

我想我应该概述一下我这里有什么,以防有人发现我可能错过的东西。如果需要更多信息,请告诉我

模型 网格搜索 尽管在各种选项中进行网格搜索,但我的精度仍在0.0105左右:

def GridSearch(self):
    print("Grid searching.")
    generator, inputs, outputs = self.GetInitialTrainingBatchVariables(1000)
    self.GetTrainingBatch(generator, inputs, outputs)

    classifier = keras.wrappers.scikit_learn.KerasClassifier(self.CreateModel)

    optimizers = ['rmsprop']
    neuronCounts = [100,200,300]
    nb_epochs = numpy.array([10,20,30])
    inits = ['glorot_uniform']
    batch_sizes = [5]
    numLayers = [5,10]
    lossFunctions = ['mse']
    #lossFunctions = ['mse', 'mae', 'mape', 'msle', 'kld', 'cosine']

    validator = sklearn.model_selection.GridSearchCV(classifier, param_grid={
            'neuronCount': neuronCounts,
            'optimizer': optimizers,
            'nb_epoch': nb_epochs,
            'batch_size': batch_sizes,
            'init':inits,
            'numLayers': numLayers,
            'lossFunction': lossFunctions,
            })

    result = validator.fit(inputs, outputs)
    # summarize results
    print("Best: %f using %s" % (result.best_score_, result.best_params_))
    for params, mean_score, scores in result.grid_scores_:
        print("%f (%f) with: %r" % (scores.mean(), scores.std(), params))

你们有多少类?请原谅我的无知,但你们是指输出类吗?如果是,只有1个。这是一个推荐系统,我想要一个值来描述用户喜欢或不喜欢这个项目的可能性;数字越大,“喜欢”就越大。我明白了,当我们说准确度时,我们通常意味着要预测的标签有0或1,狗或猫。如果你在预测可能性,一个介于0和1之间的值,那么你在这里如何定义精确度?您可以设置阈值或使用类似MSEI的方法来匹配训练集提供的内容。那么我应该使用不同的度量标准吗?如果是的话,是什么?或者也许我应该对我的产出进行建模,以进行逻辑回归。这是一个推荐系统,所以我可以用0/1作为输出。这和在最终输出层上使用二进制交叉熵和sigmoid函数一样简单吗?
def GridSearch(self):
    print("Grid searching.")
    generator, inputs, outputs = self.GetInitialTrainingBatchVariables(1000)
    self.GetTrainingBatch(generator, inputs, outputs)

    classifier = keras.wrappers.scikit_learn.KerasClassifier(self.CreateModel)

    optimizers = ['rmsprop']
    neuronCounts = [100,200,300]
    nb_epochs = numpy.array([10,20,30])
    inits = ['glorot_uniform']
    batch_sizes = [5]
    numLayers = [5,10]
    lossFunctions = ['mse']
    #lossFunctions = ['mse', 'mae', 'mape', 'msle', 'kld', 'cosine']

    validator = sklearn.model_selection.GridSearchCV(classifier, param_grid={
            'neuronCount': neuronCounts,
            'optimizer': optimizers,
            'nb_epoch': nb_epochs,
            'batch_size': batch_sizes,
            'init':inits,
            'numLayers': numLayers,
            'lossFunction': lossFunctions,
            })

    result = validator.fit(inputs, outputs)
    # summarize results
    print("Best: %f using %s" % (result.best_score_, result.best_params_))
    for params, mean_score, scores in result.grid_scores_:
        print("%f (%f) with: %r" % (scores.mean(), scores.std(), params))