Kaggle作文评分模型精度停滞0.51-0.52,寻求优化方案
Kaggle作文评分预测模型优化问题
任务背景
针对作文的词汇、衔接、规范、语法、措辞、句法6项参数进行评分预测,属于多输出回归任务。
数据情况
- 输入特征X维度为7
- 目标变量y取值范围为
[1,7],对应6项评分的输出维度
当前问题
已基于Keras Tuner实现RandomSearch超参数搜索模型,但模型精度峰值仅为0.52,预测效果极差。训练历史显示训练集与验证集精度差距明显,模型适配性存在问题。
模型构建与超参数搜索代码
def model_builder(hp): model = tf.keras.Sequential() model.add(Dense(6,input_shape=(6,), activation = "relu")) units1 = random.randrange(32,512,32) model.add(tf.keras.layers.Dense(units=units1, activation='relu')) model.add(tf.keras.layers.Dropout(0.3)) units2 = random.randrange(32,512,32) model.add(tf.keras.layers.Dense(units=units2, activation='relu')) model.add(tf.keras.layers.Dropout(0.3)) units3 = random.randrange(32,512,32) model.add(tf.keras.layers.Dense(units=units3, activation='relu')) model.add(tf.keras.layers.Dropout(0.4)) units7 = random.randrange(32,512,32) model.add(tf.keras.layers.Dense(units=units7, activation='relu')) model.add(tf.keras.layers.Dropout(0.3)) units8 = random.randrange(32,512,32) model.add(tf.keras.layers.Dense(units=units8, activation='relu')) model.add(tf.keras.layers.Dropout(0.2)) model.add(tf.keras.layers.Dense(6)) # 调优优化器参数 hp_learning_rate = hp.Choice('learning_rate', values=[1e-2, 1e-3, 1e-4]) hp_momentum = hp.Choice('momentum', values = [1e-1, 3e-1, 5e-1, 7e-1, 9e-1]) model.compile(optimizer=tf.keras.optimizers.SGD(learning_rate=hp_learning_rate, momentum=hp_momentum, ), loss=tf.keras.losses.MeanSquaredError(), metrics=['accuracy']) return model # 超参数搜索代码 tuner = kt.RandomSearch( hypermodel=model_builder, objective='val_accuracy', max_trials=10, ) early_stopping_monitor = EarlyStopping(monitor='val_accuracy', patience = 10, restore_best_weights=True) tuner.search(X_train, y_train, epochs=80, batch_size=16, validation_data=(X_test,y_test), callbacks=[early_stopping_monitor]) # 获取最优超参数 best_hps=tuner.get_best_hyperparameters(num_trials=1)[0] print(f""" The hyperparameter search is complete. The optimal learning rate for the optimizer is {best_hps.get('learning_rate')}. """)
已尝试的优化措施
- 特征提取以提升特征相关性,效果不佳
- 测试不同优化器、激活函数,未改善模型性能
- 计划尝试将数据归一化至0-1区间并使用sigmoid激活函数
寻求优化建议
内容的提问来源于stack exchange,提问作者Chris Elroy Lewis
相关产品推荐
相关产品推荐

