python - 不平衡数据集中的多类分类
问题描述
我明白这是非常不平衡的。我尝试过采样和欠采样,它们为训练提供了良好的准确性。但是,他们当然给出了非常低的验证准确性。我还尝试了如下的类权重:
class_weights = class_weight.compute_class_weight('balanced', np.unique(Y), Y)
这也导致验证的准确性低。我什至排除了其他标签,只留下了 5 个最高的标签,仍然可以获得大约 36% 的验证准确率和 92% 的训练准确率。我认为这一切都是因为过度拟合。但是我的模型很简单;它的:
model = tf.keras.Sequential([
tf.keras.layers.Embedding(MAX_NB_WORDS,int(len(word_index)*.25),input_length=X.shape[1]),
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(64,dropout=.5)),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(5, activation='sigmoid')
])
我很困惑,不知道该怎么办?
解决方案
推荐阅读
- python - 代码无法正常工作 - 尝试创建一个简单的图表
- python - 如何使用 numpy 创建一个重复值数组
- javascript - 将锚标记附加到部分以及传输 id
- c++ - std::swap 丢失了基于类型的别名分析使用的信息?
- visual-studio - “转到定义”版本号从何而来?
- prettier - 防止 Prettier 中的换行符
- pine-script - Tradingview 策略不准确。需要建议
- amazon-web-services - 如何通过 AWS HTTP API 向 Lambda 发送参数
- mysql - MySQL 奇怪的符号
- python - Python如何编程在一定时间后关闭