1
我有一個包含122個唯一值的字典。我正在用超過45,000條記錄提供33個數據點,以指出什麼時候對輸出結果進行預測。我注意到的是它只能預測[[1.]...]
。我需要它來預測1的2的3 ...直到122.所有的都是漂浮物,所以我不知道這是否重要。我該如何讓keras預測除了單熱矩陣以外的其他東西?
這裏是我的代碼 -
Y = faults['FAILMODE']
del faults['FAILMODE']
X = faults
len(Y.FAILMODE.unique())
122
我這是怎麼打算與實際字符串值的輸出關聯(如「排」)
classes = {}
n = 1.
for u in Y:
if u not in classes:
classes[n] = u
n += 1.
else:
n += 1.
我用這把所有數據轉換成DataFrame中的獨特浮點。
for col in X:
values = pd.Series(X[col])
X[col] = (values.factorize()[0]+1).astype('float')
Y = (Y.factorize()[0]+1).astype('float')
Y = pd.DataFrame(Y, columns = ['FAILMODE'])
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.33)
X_train = X_train.as_matrix()
X_test = X_test.as_matrix()
Y_train = Y_train.as_matrix()
Y_test = Y_test.as_matrix()
model = Sequential()
model.add(Dense(12, input_dim=7, init='uniform', activation='relu'))
model.add(Dense(7, init='uniform', activation='relu'))
model.add(Dense(1, init='uniform', activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, Y_train, nb_epoch=150, batch_size=10)
predictions = model.predict(X_test)
print predictions[:20
[[ 1.]
[ 1.]
[ 1.]
[ 1.]
[ 1.]
[ 1.]
[ 1.]
[ 1.]
[ 1.]
[ 1.]
[ 1.]
[ 1.]]
感謝您的幫助!
這是什麼分類? –
是的。我也做了一切改變訓練和測試數據'to_categorical',但我現在有問題的數據形狀。 – NickTheInventor