我正在尝试创建一个预测模型,该模型利用滞后特征和嵌入来预测未来10天的累积价值。通过将订单篮与gensim一起使用来训练嵌入层。
下面是我的网络:
from keras.layers import Embedding,flatten,Input,Dense,Dropout,activation
inp = Input(shape=(1,)) #ucode length will be 1
x = Embedding(len(model.wv.vocab),WV_DIM,weights=[model.wv.vectors],trainable=False)(inp)
x = flatten()(x)
x = Dense(32,activation='relu',name='Embedding_out')(x)
features_input = Input(shape=(122,)) ##lag Features
concat = concatenate([features_input,x],name="concatenatedwFeatures")
output = Dense(256,activation="relu",name="L1_Relu")(concat)
output = Dense(128,name="L2_Relu")(output)
output = Dense(1)(output)
EmbeddingModel = Model(inputs=[inp,features_input],outputs=output)
EmbeddingModel.summary()
adam = optimizers.adam(clipvalue=1.,lr=3e-4)
EmbeddingModel.compile(loss='mse',optimizer=adam,metrics = ['mae','mse'])
hist = EmbeddingModel.fit([ucode_array[20:25],X_train[20:25]],[y_train[20:25]],validation_split=0.05,epochs=10,batch_size=32)
Error:
ValueError: could not convert string to float: 'I33946'
Input Values:
ucode_array=sales_train_grid['ucode']
ucode_array[20:25]
15683 I33946
15685 I33946
15687 I33946
15688 126310
15689 126310
Name: ucode,dtype: object
测试值是否在嵌入层中存在
test1=model.wv.most_similar(positive=['I00731'],topn=10)
display(test1)
[x[0] for x in test1]
返回10个相似的对象。如果我粘贴了任何随机值,则不返回任何值。
尝试以下操作: 1. ucode_array [20:25] .values 2. ucode_array [20:25] .values.tolist()
gensim版本:3.4.0 TensorFlow版本:1.12.0