我必须建立一个分类模型,以便通过使用他/她的评论来预测用户的评分。(我正在处理这个数据集:Trip Advisor Hotel Reviews)
经过一些预处理后,我将逻辑回归的结果与 CatBoost 分类器进行了比较,两者都使用了默认的超参数。Logistic 回归给了我更好的 AUC 和 F1 分数。
我听一些同事说这是因为线性模型在处理太多特征时会更好(他们告诉我> 500)。那是对的吗?特征数量和模型性能有什么关系吗?我想我错过了理论上的一些东西
我必须建立一个分类模型,以便通过使用他/她的评论来预测用户的评分。(我正在处理这个数据集:Trip Advisor Hotel Reviews)
经过一些预处理后,我将逻辑回归的结果与 CatBoost 分类器进行了比较,两者都使用了默认的超参数。Logistic 回归给了我更好的 AUC 和 F1 分数。
我听一些同事说这是因为线性模型在处理太多特征时会更好(他们告诉我> 500)。那是对的吗?特征数量和模型性能有什么关系吗?我想我错过了理论上的一些东西
您的问题中缺少一些重要信息,即标准参数是什么以及您使用哪种逻辑回归。
使用时sklearn.linear_model.LogisticRegression,您将在文档中看到第一个超参数是penalty默认为l2. 这意味着默认情况下使用参数的“收缩”。通过使用正则化,对预测某些结果不是很有帮助的特征被“缩小”。这正是当您拥有“高维”数据(很多特征而没有那么多观察结果)时您会做的事情。
基于树的增强模型在高维设置中本身并不是“坏”的。然而,为了获得良好的性能,可能需要引入列子采样和可能的行子采样(“随机梯度提升”)以及“足够的”提升轮次(可能具有低学习率)。这样做的原因是您希望尽可能多地显示提升算法的信息,同时避免少数“强大”功能占主导地位。由于在每个增强轮中只生长“浅”树(通常是 5-8 个拆分),因此如果您不在每个增强轮中随机抽样列(特征),则很少有“强大”的特征将占主导地位。因此,当少数强大的功能占主导地位时,可能无法了解重要的细节。
您可以检查两个模型的特征重要性,看看是否存在很大差异。