В настоящее время я пытаюсь выполнить некоторую классификацию текста, используя нейронную сеть с некоторыми собственными входными данными.
Из-за моего очень ограниченного набора данных, содержащего около 85 положительных и 85 отрицательных классифицированных текстов по ~ 1500 слов на файл,Мне сказали использовать перекрестную проверку для моей нейронной сети, чтобы обойти переоснащение.
Я начал строить нейронную сеть с помощью YT-видео и руководств, и теперь моя проблема заключается в том, как сделать перекрестную проверку.проверочное тестирование.
Мой текущий код выглядит следующим образом:
data = pd.read_excel('dataset3.xlsx' )
max_words = 1000
tokenize = text.Tokenizer(num_words=max_words, lower=True, char_level=False)
train_size = int(len(data) * .8)
train_posts = data['Content'][:train_size]
train_tags = data['Value'][:train_size]
test_posts = data['Content'][train_size:]
test_tags = data['Value'][train_size:]
tokenize.fit_on_texts(train_posts)
x_train = tokenize.texts_to_matrix(train_posts)
x_test = tokenize.texts_to_matrix(test_posts)
encoder = LabelEncoder()
encoder.fit(train_tags)
y_train = encoder.transform(train_tags)
y_test = encoder.transform(test_tags)
num_classes = np.max(y_train) + 1
y_train = utils.to_categorical(y_train, num_classes)
y_test = utils.to_categorical(y_test, num_classes)
batch_size = 1
epochs = 20
model = Sequential()
model.add(Dense(750, input_shape=(max_words,)))
model.add(Activation('relu'))
model.add(Dropout(0.2))
model.add(Dense(num_classes))
model.add(Activation('sigmoid'))
model.summary()
model.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])
history = model.fit(x_train, y_train,
batch_size=batch_size,
epochs= epochs,
verbose=1,
validation_split=0.2)
Я играл с
KFold(n_splits=k, shuffle=True, random_state=1).split(x_train, y_train))
, но я понятия не имею, как использовать его в нейронной сети.Сама сеть, надеюсь, вы можете помочь мне с моей проблемой.
Спасибо в отношении
Джейсон