我正在对以下数据集进行回归以预测白葡萄酒的质量
数据集链接:https ://archive.ics.uci.edu/ml/datasets/wine+quality
数据 csv 名称:winequality-white.csv
特性:1-固定酸度,2-挥发性酸度,3-柠檬酸,4-残糖,5-氯化物,6-游离二氧化硫,7-总二氧化硫,8-密度,9-pH,10-硫酸盐, 11 - 酒精
目标变量:质量
测试拆分: 33%
模型一:
随机森林回归 scikit-learn 实现
预处理: sklearn 标准缩放器(尽管 RFR 不需要)
超参数: 'rf_regr__max_features':'auto','rf_regr__max_leaf_nodes':无,'rf_regr__min_samples_leaf':1,'rf_regr__min_samples_split':5,'rf_regr__n_estimators':10
测试 R2 分数: 0.84
模型二
全连接神经网络
预处理: sklearn 标准缩放器
超参数:优化器=tf.keras.optimizers.Adam(learning_rate=1e-3),loss=tf.keras.losses.mse, callback = tf.keras.callbacks.EarlyStopping(monitor='val_loss',耐性=10)
chpt = tf.keras.callbacks.ModelCheckpoint('wine_model',monitor='val_loss',save_best_only=True)
拓扑:
tf.keras.Input(shape=(num_features)),
tf.keras.layers.Dense(16,activation='relu'),
tf.keras.layers.Dense(8,activation='relu'),
tf.keras.layers.Dense(4,activation='relu'),
tf.keras.layers.Dense(2,activation='relu'),
tf.keras.layers.Dense(2,activation='relu'),
tf.keras.layers.Dense(1,activation='linear')
我已经尝试过各种其他拓扑和学习率/其他 HP。
在测试数据上获得的最佳 R2 分数: 0.33。
为什么随机森林( 0.84)和神经回归(0.33 )之间的测试 R2 分数存在如此巨大的差异?
此外,我观察到即使有 6-7 个隐藏层,神经网络甚至无法拟合训练数据。添加超过 4 层后,测试分数开始下降。