当训练样本增加时准确率下降
when training sample increases accuracy decreases
我正在测试 keras 的 imdb 数据集。问题是,当我拆分训练和测试 2000 个单词时,准确率接近 87%:
(X_train, train_labels), (X_test, test_labels) = imdb.load_data(num_words=2000)
但是当我将单词增加到喜欢 5000 或 10000 时,模型表现不佳:
(X_train, train_labels), (X_test, test_labels) = imdb.load_data(num_words=10000)
这是我的模型:
model = models.Sequential()
model.add(layers.Dense(256, activation='relu', input_shape=(10000,)))
model.add(layers.Dense(16, activation='relu' ))
model.add(layers.Dense(1, activation='sigmoid'))
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
history =model.fit(X_train, y_train, epochs=10, batch_size=64,validation_data=(x_val, y_val))
谁能解释一下为什么会这样。我虽然有更多的样本(和更少的过拟合)我应该得到一个非常好的模型。
感谢任何建议
增加 num_words
不会增加样本数量,但会增加词汇量,导致每个样本(统计上)更多的单词,朝着 curse of dimensionality 的方向发展,这对模型。
来自docs:
num_words: integer or None. Top most frequent words to consider. Any less frequent word will appear as oov_char value in the sequence data.
我正在测试 keras 的 imdb 数据集。问题是,当我拆分训练和测试 2000 个单词时,准确率接近 87%:
(X_train, train_labels), (X_test, test_labels) = imdb.load_data(num_words=2000)
但是当我将单词增加到喜欢 5000 或 10000 时,模型表现不佳:
(X_train, train_labels), (X_test, test_labels) = imdb.load_data(num_words=10000)
这是我的模型:
model = models.Sequential()
model.add(layers.Dense(256, activation='relu', input_shape=(10000,)))
model.add(layers.Dense(16, activation='relu' ))
model.add(layers.Dense(1, activation='sigmoid'))
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
history =model.fit(X_train, y_train, epochs=10, batch_size=64,validation_data=(x_val, y_val))
谁能解释一下为什么会这样。我虽然有更多的样本(和更少的过拟合)我应该得到一个非常好的模型。
感谢任何建议
增加 num_words
不会增加样本数量,但会增加词汇量,导致每个样本(统计上)更多的单词,朝着 curse of dimensionality 的方向发展,这对模型。
来自docs:
num_words: integer or None. Top most frequent words to consider. Any less frequent word will appear as oov_char value in the sequence data.