分類

2017-08-01 17 views
1

Iしている私は、このシーケンスの分類分類

私はこれを使用するか、またはそれを使用するために変更できる
from keras.datasets import imdb 
from keras.models import Sequential 
from keras.layers import Dense 
from keras.layers import LSTM 
from keras.layers.convolutional import Convolution1D 
from keras.layers.convolutional import MaxPooling1D 
from keras.layers.embeddings import Embedding 
from keras.preprocessing import sequence 
numpy.random.seed(7) 
top_words = 5000 
(X_train, y_train), (X_test, y_test) = imdb.load_data(nb_words=top_words) 
# truncate and pad input sequences 
max_review_length = 500 
X_train = sequence.pad_sequences(X_train, maxlen=max_review_length) 
X_test = sequence.pad_sequences(X_test, maxlen=max_review_length) 
# create the model 
embedding_vecor_length = 32 
model = Sequential() 
model.add(Embedding(top_words, embedding_vecor_length, input_length=max_review_length)) 
model.add(Convolution1D(nb_filter=32, filter_length=3, border_mode='same', activation='relu')) 
model.add(MaxPooling1D(pool_length=2)) 
model.add(LSTM(100)) 
model.add(Dense(1, activation='sigmoid')) 
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) 
print(model.summary()) 
model.fit(X_train, y_train, nb_epoch=3, batch_size=64) 

を見出し行

sample feat1 feat2 feat3 feat4 feat5 feat6 feat7 
1  1  200 250 312 474 
1  2  170 280 370 
... 
1  12  220 400 470 520 620 720 
2  1  130 320 430 580 612 
... 
N  12  70 180 270 410 

内の要素の数を変化させると、このデータ?いくらかの方向性はいいだろう。

また、どのアルゴリズムを使用するか、どのように行うかをお勧めしたら、お勧めします。

答えて

0

一般的なアプローチは、「不明」を意味する特定の値を指定することです。たとえば、すべての値が正の場合、それを-1として選択することができます。

sample feat1 feat2 feat3 feat4 feat5 feat6 feat7 
1  1  200 250 312 474 -1 -1 
1  2  170 280 370 -1 -1 -1 
... 
1  12  220 400 470 520 620 720 
2  1  130 320 430 580 612 -1 
... 
N  12  70 180 270 410 -1 -1 

ネットワークは、この値を無視することを学習します。

pad_sequencesという名前の組み込み関数もあります。