2015-12-24 23 views
4

如何将数据输入keras?什么是结构?具体来说,如果我有2列以上,x_train和y_train是什么?如何将数据输入Keras?具体来说,如果我有2列以上,x_train和y_train是什么?

这是我想输入的数据:我想在这个例子中多层感知神经网络代码Keras有其文档中定义Xtrain

enter image description here

。 (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使用含有theano.config.floatX浮点型numpy的阵列。这可以在.theanorc文件中配置。通常情况下,CPU计算使用float64,GPU计算使用float32,但如果您愿意,也可以在CPU上工作时将其设置为float32。您可以通过以下命令创建正确类型的零填充阵列

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

问题:第1步貌似创建使用从Excel文件我上面的数据浮点numpy的阵列。我如何处理胜利者专栏?

回答

10

这一切都取决于你的需要。

看起来要预测基于在列A中所示的参数的赢家 - 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

y是训练预测集吗? – pr338

+2

mmm ...让我们这样说:Y_train是其中每个条目对应于X_train中的一个条目的答案。当你想预测答案时,你使用model.predict并将X_test提供给它。 –

+0

还有一个问题 - 我试过model.predict(X_predict,batch_size = 128,verbose = 1),我得到像数组([0.96624053,0.03375945])的答案。这是否意味着它最有可能[1,0],概率为〜96%? – pr338

相关问题