【问题标题】:how to get prediction value using trained model using keras?如何使用使用 keras 的训练模型获得预测值?
【发布时间】:2020-03-18 03:20:32
【问题描述】:

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

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]

【问题讨论】:

    标签: python pandas numpy machine-learning keras


    【解决方案1】:

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

    1. 适合:
        ...
        encode = LabelEncoder()  # create new encoder
        k = encode.fit_transform([k])  # fit encoder and transform value
        save_encoder(encode, 'some_name_for_encoder.hdf5')  # save fitted encoder for further usage
        ...
    
    1. 预测:
        ...
        encode = load_encoder('some_name_for_encoder.hdf5')  # load fitted encoder
        k = encode.transform([k])  # transform value
        ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-15
      • 2018-11-03
      • 2019-12-30
      • 1970-01-01
      • 1970-01-01
      • 2020-09-07
      • 2017-08-19
      • 1970-01-01
      相关资源
      最近更新 更多