如何正确调整超参数以最小化误差

问题描述

真的已经研究了一个多星期了,使用了 youtube 喜欢的预测数据集。我不得不将所有非文本特征和非相关特征删除到目标剩余的 3 个特征,并且数据集只是 (26061,12) 数据集。 但是使用线性回归发现我的 MSE 和 MAE 都太大了(大约 15,000)。还使用了梯度提升仍然相同,并且还发现它不适用于 n_estimators 大于 5 的数据集。还尝试使用电源变压器转换 X_train 和 X_test 以确保良好的高斯分布,但仍然无法正常工作。 我无法弄清楚什么是真正的错误。 这是我的 colab 笔记本的链接 https://colab.research.google.com/drive/1dJZuG0n63842DEwHMR7TzLBmssnOKsj4?usp=sharing 链接到数据集 https://www.kaggle.com/jinxzed/youtube-likes-prediction-av-hacklive

解决方法

您的特征的比例非常不同(“视图”在数值上比其他变量大得多)。这使得“视图”特征对最终输出的影响比其他变量更大。

我建议在将数据输入任何模型之前先对特征进行标准化。您可以使用 sklearn 的 StandardScaler:

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

此外,较大的 MSE 并不一定意味着您的模型不好,因为 MSE 的大小还取决于标签 y 的大小。例如,对于 true_label 和 predict_label 之间相同的 10% 差异,

true_label = 1000,predict_label = 1100 -> Squared Error = 10000

会导致比

更大的平方误差
true_label = 1,predict_label = 1.1 -> Squared Error = 0.01