如何将数据输入Keras?如果我有超过两列,具体的x_train和y_train是什么?

7
我可以帮助您翻译文本。如何在Keras中输入数据?它的结构是什么?如果我有超过2列,具体来说x_train和y_train是什么?以下是我想要输入的数据:

enter image description here

我正在尝试在Keras文档中找到的这个多层感知神经网络示例代码中定义Xtrain。以下是代码:

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)

编辑(附加信息):

在这里查看:Python Keras深度学习包的数据类型是什么?

Keras使用包含theano.config.floatX浮点类型的numpy数组。这可以在您的.theanorc文件中进行配置。通常,它将在CPU计算中为float64,在GPU计算中为float32,但如果您喜欢,也可以在CPU上设置为float32。您可以通过命令创建一个零填充的正确类型的数组

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

问题:第一步似乎是使用来自Excel文件的上述数据创建一个浮点numpy数组。那么我对获胜者列该怎么做?

1个回答

13

一切都取决于你的需求。

看起来你想根据A-N列中显示的参数来预测胜者。那么你应该定义input_dim为14,X_train应该是一个(N,14)的numpy数组,就像这样:

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

看起来你的预测集只包含2个项目(2个总统候选人LOL),因此你应该像这样将答案Y_train编码为(N,2)的numpy数组:

TBD

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

[1,0] 表示巴拉克·奥巴马是赢家,反之亦然。


那么y train就是预测集吗? - pr338
2
嗯...这么说吧:Y_train是答案,其中每个条目对应于X_train中的一个条目。当您想要预测答案时,您可以使用model.predict并将X_test提供给它。 - Ian Chen
还有一个问题 - 我尝试了model.predict(X_predict, batch_size=128, verbose=1),我得到的答案是array([ 0.96624053, 0.03375945])。这是否意味着它很可能是[1,0],概率约为96%? - pr338
2
@pr338 是的,因为最后一层的激活函数是softmax,所以可以被视为概率。 - Irtaza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接