2015-12-24 9 views
4

Как я могу ввести данные в keras? Какова структура? В частности, что такое x_train и y_train, если у меня больше двух столбцов?Как вводить данные в Keras? В частности, что такое x_train и y_train, если у меня больше двух столбцов?

Это данные, которые я хочу, чтобы ввести:

enter image description here

Я пытаюсь определить Xtrain в этом примере Многослойной Perceptron Neural Network код Keras имеет в своей документации. (http://keras.io/examples/) Вот код:

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 (дополнительная информация):

Цель здесь: What is data type for Python Keras deep learning package?

Keras использует Numpy массивы, содержащие тип с плавающей точкой theano.config.floatX. Это можно настроить в файле .theanorc. Как правило, это будет float64 для вычислений CPU и float32 для вычислений графических процессоров, хотя вы можете также установить его float32 при работе на CPU, если хотите. Вы можете создать нулевой заполненный массив соответствующего типа команды

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

Вопрос: Шаг 1 выглядит как создать точку Numpy массив с плавающим используя мои вышеуказанные данные из файла Excel. Что мне делать с колонкой победителя?

ответ

10

Все зависит от ваших потребностей.

Похоже, что вы хотите, чтобы предсказать победителя на основе параметров, представленных в колонке А - N. Тогда вы должны определить input_dim быть 14, и X_train должно быть (N, 14) NumPy массив так:

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

кажется, что ваш прогноз набор содержит только 2 пункта (2 президента кандидатов LOL), так что вы должны кодировать ответ Y_train в (N, 2) NumPy массив как это:

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

где [1,0] указывает, что победитель Барак Обама и наоборот.

+0

Есть ли у вас прогноз, установленный тогда? – pr338

+2

ммм ... скажем так: Y_train - это ответ, в котором каждая запись соответствует одному в X_train. Когда вы хотите предсказать ответ, вы используете model.predict и кормите X_test. –

+0

Еще один вопрос - я попробовал model.predict (X_predict, batch_size = 128, verbose = 1), и получаю ответы вроде array ([0.96624053, 0.03375945]). Означает ли это, что это наиболее вероятно [1,0] с вероятностью ~ 96%? – pr338