2015-12-24 4 views
4

Comment puis-je entrer des données dans keras? Quelle est la structure? Plus précisément, qu'est ce que x_train et y_train si j'ai plus de 2 colonnes?Comment entrer des données dans Keras? Plus précisément, qu'est ce que x_train et y_train si j'ai plus de 2 colonnes?

Ce sont les données que je veux entrée:

enter image description here

Je suis en train de définir Xtrain dans cet exemple Perceptron multicouche Code Neural Network Keras a dans sa documentation. (http://keras.io/examples/) Voici le code:

from keras.models import Sequential 
from keras.layers.core import Dense, Dropout, Activation 
from keras.optimizers import SGD 

model = Sequential() 
model.add(Dense(64, input_dim=20, init='uniform')) 
model.add(Activation('tanh')) 
model.add(Dropout(0.5)) 
model.add(Dense(64, init='uniform')) 
model.add(Activation('tanh')) 
model.add(Dropout(0.5)) 
model.add(Dense(2, init='uniform')) 
model.add(Activation('softmax')) 

sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True) 
model.compile(loss='mean_squared_error', optimizer=sgd) 

model.fit(X_train, y_train, nb_epoch=20, batch_size=16) 
score = model.evaluate(X_test, y_test, batch_size=16) 

EDIT (plus d'informations):

Vous cherchez ici: What is data type for Python Keras deep learning package?

Keras utilise des tableaux numpy contenant le type à virgule flottante theano.config.floatX. Cela peut être configuré dans votre fichier .theanorc. Typiquement, ce sera float64 pour les calculs CPU et float32 pour les calculs GPU, bien que vous puissiez aussi le définir sur float32 lorsque vous travaillez sur le CPU si vous préférez. Vous pouvez créer un tableau rempli de zéros du type approprié par la commande

X = numpy.zeros((4,3), dtype=theano.config.floatX) 

Question: Étape 1 ressemble à créer un tableau numpy à virgule flottante en utilisant mes données ci-dessus à partir du fichier Excel. Que fais-je avec la colonne des gagnants?

Répondre

10

Tout dépend de vos besoins.

On dirait que vous voulez prédire le gagnant en fonction des paramètres indiqués dans la colonne A - N. Ensuite, vous devez définir input_dim être 14 et X_train doit être un (N, 14) tableau numpy comme ceci:

[ 
    [9278, 37.9, ...], 
    [18594, 36.3, ...], 
    ... 
] 

Il semble que votre prédiction établi ne contient que 2 éléments (2 candidats du président LOL), vous devez coder la réponse Y_train dans un (N, 2) tableau numpy comme ceci:

[ 
    [1, 0], 
    [1, 0], 
    ... 
    [0, 1], 
    [0, 1], 
    ... 
] 

[1,0] indique que Barack Obama est le gagnant et vice versa.

+0

Y y aura-t-il un entraînement de prédiction? – pr338

+2

mmm ... disons-le de cette façon: Y_train est la réponse dans laquelle chaque entrée correspond à un dans le X_train. Quand vous voulez prédire la réponse, vous utilisez model.predict et vous lui envoyez X_test. –

+0

Encore une question - J'ai essayé model.predict (X_predict, batch_size = 128, verbose = 1) et j'obtiens des réponses comme array ([0.96624053, 0.03375945]). Est-ce que cela signifie que c'est probablement [1,0] avec une probabilité de ~ 96%? – pr338