gpt4 book ai didi

python - 用于文本分类的 Tensorflow 模型未按预期进行预测?

转载 作者:行者123 更新时间:2023-11-30 08:36:50 25 4
gpt4 key购买 nike

我正在尝试训练一个用于情感分析的模型,当将数据分为训练和测试时,它显示出 90% 的准确率!但每当我在新短语上测试它时,结果几乎相同(通常在 0.86 - 0.95 范围内)!这是代码:

sentences = data['text'].values.astype('U')
y = data['label'].values

sentences_train, sentences_test, y_train, y_test = train_test_split(sentences, y, test_size=0.2, random_state=1000)

tokenizer = Tokenizer(num_words=5000)
tokenizer.fit_on_texts(sentences_train)

X_train = tokenizer.texts_to_sequences(sentences_train)
X_test = tokenizer.texts_to_sequences(sentences_test)

vocab_size = len(tokenizer.word_index) + 1

maxlen = 100

X_train = pad_sequences(X_train, padding='post', maxlen=maxlen)
X_test = pad_sequences(X_test, padding='post', maxlen=maxlen)

embedding_dim = 50
model = Sequential()
model.add(Embedding(input_dim=vocab_size, output_dim=embedding_dim,input_length=maxlen))
model.add(layers.Flatten())
model.add(layers.Dense(10, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
model.summary()

history = model.fit(X_train, y_train,
epochs=5,
verbose=True,
validation_data=(X_test, y_test),
batch_size=10)
loss, accuracy = model.evaluate(X_train, y_train, verbose=False)
print("Training Accuracy: {:.4f}".format(accuracy))
loss, accuracy = model.evaluate(X_test, y_test, verbose=False)
print("Testing Accuracy: {:.4f}".format(accuracy))

训练数据是一个包含 3 个字段的 CSV 文件:(id, text, labels(0,1)),其中 0 为正,1 为负。

Training Accuracy: 0.9855
Testing Accuracy: 0.9013

用“这只是一段文字!”等新句子来测试它和“讨厌传教士!”会预测相同的结果 [0.85],[0.83]。

最佳答案

看来您是过度拟合的受害者。换句话说,我们的模型将过度拟合训练数据。尽管通常可以在训练集上实现高精度,就像您的情况一样,但我们真正想要的是开发能够很好地泛化到测试数据(或它们的数据)的模型。以前没见过)。

您可以关注these防止过度拟合的步骤。

此外,为了提高算法性能,我建议您增加Dense层的神经元数量,并设置更多epochs为了在对新数据进行测试时提高算法的性能。

关于python - 用于文本分类的 Tensorflow 模型未按预期进行预测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60015820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com