2017-07-15 2 views
0

Je voudrais créer un exemple de plusieurs pour un modèle de prédiction pour les nouveaux à Keras comme moi.LSTM Plusieurs à un exemple de prédiction dans Keras

Étant donné que 4 ondes sinusoïdales déphasent de 90 degrés l'une par rapport à l'autre, utilisez trois pour prédire une quatrième. La documentation est très peu claire et les exemples sont 90% CNN et le reste sont une forme de classification aussi. Donc X1 X2 et X3 seraient à zéro, quatre-vingt-dix et deux cent soixante-dix déphasés. Les données de l'étiquette seraient déphasées d'un sur huit par rapport à la première.

Alors comment construire le Y? Serait-ce la même forme que le X, seulement les données de phase de 270 degrés dupliquées? Y at-il un moyen d'avoir les données Y comme une seule entrée elle-même? Avez-vous besoin de regarder en arrière sur les données Y? Pouvez-vous me donner une cible Y unique pour chaque X qui a un retour en arrière?

J'ai vu la première ligne d'un article qui suggère que vous pouvez utiliser les fonctions == 3 pour concaténer la prédiction de données Y, mais encore une fois pas d'exemple (s). Comme j'ai vu cette même question publiée de différentes façons sans solution, je suis prêt à passer du temps à créer un exemple de meilleure pratique et à créer un jeu de données sur Kaggle qui pourrait être utilisé. (https://www.kaggle.com/superdave/test-driven-data/downloads/FourOutOfPhaseWaves.csv)

Existe-t-il un ou des exemples qui se rapproche?

Oui Je souhaite utiliser des LSTM ou des GRU. J'ai testé de nombreuses formes d'ondes à entrée unique et j'ai obtenu d'excellents résultats. https://www.kaggle.com/superdave/test-driven-data. Je veux poster une solution mais voir que le plus grand exemple manquant est de plusieurs à une prédiction LSTM. Un exemple de jouet avec des ondes sinusoïdales devrait être un excellent ajout à la communauté.

Répondre

0

Un bref exemple de ce que vous essayez d'accomplir.

x = np.random.rand(1000,3,1) 
y = np.random.rand(1000,1) 

x est votre donnée d'entrée (tableau 3d) contenant 3 ondes sinusoïdales. y est votre quatrième vague dans un tableau 2d.

Ensuite, un modèle simple à suivre

model = Sequential() 
model.add(LSTM(4,activation='relu',input_shape=(x.shape[1],x.shape[2]))) 
model.add(Dense(1,activation='linear')) 
model.compile(optimizer='rmsprop',loss='mse') 
model.fit(x,y,epochs=30)