Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何通过使用keras的训练模型获得预测值?_Python_Pandas_Numpy_Machine Learning_Keras - Fatal编程技术网

Python 如何通过使用keras的训练模型获得预测值?

Python 如何通过使用keras的训练模型获得预测值?,python,pandas,numpy,machine-learning,keras,Python,Pandas,Numpy,Machine Learning,Keras,我想用学到的模型得到一个新的预测。 所以我做了一个我想要得到的函数。 但它不起作用。 当我使用这个函数时,它总是返回相同的值。 我认为编码过程有问题,但我不知道如何解决。 我改变了很多我怀疑的事情,但它不起作用。 请注意这段代码,请告诉我这段代码有什么问题。 多谢各位 def determineRank(t,n,bid_t,w,h,k): # t = str(input()) # time # n = int(input()) # now ranking # bid_t

我想用学到的模型得到一个新的预测。 所以我做了一个我想要得到的函数。 但它不起作用。 当我使用这个函数时,它总是返回相同的值。 我认为编码过程有问题,但我不知道如何解决。 我改变了很多我怀疑的事情,但它不起作用。 请注意这段代码,请告诉我这段代码有什么问题。 多谢各位

def determineRank(t,n,bid_t,w,h,k):
#    t = str(input())   # time
#    n = int(input())   # now ranking
#    bid_t = int(input())   # bid amount
#    w = int(input())   # weekday
#    h = int(input())   # holiday
#    k = str(input())   # keyword


    encode = LabelEncoder()
    #x = np.concatenate((t,n,bid_t,w,h,k),axis = 1).reshape(1,6,1)
    t = categorize_time(t)
    k = encode.fit_transform([k])
    new_list = []
    new_list = [t,n,bid_t,w,h,k]

    """ 
    new_list = new_list.append(t)
    new_list = new_list.append(n)
    new_list = new_list.append(bid_t)
    new_list = new_list.append(w)
    new_list = new_list.append(h)
    new_list = new_list.append(k)
    k = encode.fit_transform(k)
    """

    new_list = np.array(new_list)   
    new_list = new_list.reshape(1,6,1)
    model = load_model('03-0.728448.hdf5')
    rank = model.predict(new_list)
    return rank[0]

你是对的,编码过程有问题。 调用
LabelEncoder()
时,将创建一个新的编码器。因此,对于传递给新编码器的任何值,编码结果都是相同的。要根据基于编码器的值进行预测,应使用与模型拟合相同的编码器:

  • 适合:
  • 。。。
    encode=LabelEncoder()#创建新编码器
    k=编码。拟合_变换([k])#拟合编码器和变换值
    保存_编码器(encode,'some_name_for_encoder.hdf5')#保存安装的编码器以供进一步使用
    ...
    
  • 预测:
  • 。。。
    encode=加载编码器(“一些名称用于加载编码器.hdf5”)#加载安装的编码器
    k=编码.变换([k])#变换值
    ...