首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >小数据集机器学习模型的改进

小数据集机器学习模型的改进
EN

Data Science用户
提问于 2021-12-17 13:38:11
回答 1查看 85关注 0票数 0

我试图在一个小数据集(大约600条记录)上找到最好的排序模型。我不能增加这个数据集,因为它是来自600个城市的真实数据,这是我研究的范围。

更新:数据包含有关城市的信息(温度、人类发展指数等),我打算用它们来模拟疾病与病例的关系。目标变量是根据疾病发生率的类别(例如:< 20例/ mil为0级)。所以,我有5节课。

为了进行模型比较,我使用了精度和分析混淆矩阵。算法为RandomForest

我想听听你对我在这件事上可以改进什么的看法。我正在做的事情是:

  1. 单独20%的数据集用于模型验证:train_test_split(X,y, test_size=0.20, random_state=42)
  2. 运行其他80%的GridSearch并获得最佳的gsc.best_estimator_模型
  3. 我将此模型应用于20%的验证,并验证了该模型的准确性。

正如你可能注意到的,准确度是0.40,我认为这是非常低的。我用其他算法和特性组合做过其他测试,并且没有什么变化(精确度在0.35到0.45之间)。

在这种情况下,你建议我做些什么来改进呢?

更新2:我回顾了所有的特性,包括一些可能与我的研究主题相关的特性,并排除了科学文献中没有支持的其他特性。现在,GridSearch的准确度大约为0.56,这与我想要的(>0.7)相差甚远,但它已经是一个相当大的改进。

我用3种不同的算法(随机森林算法、MLPClassfier算法和XGBoost算法)对其进行了测试,RandomForest比神经网络稍好一些。

正如您在新的混淆矩阵中所看到的,类2是性能最差的类。它有较少的记录,但这并没有太大的差别,例如,1级。这里有什么提示可以说明我能在这门课上找到什么吗?

非常感谢。

EN

回答 1

Data Science用户

发布于 2021-12-28 22:11:23

从我在评论中的讨论中看到的,我了解到有两个可能的问题:阶级不平衡和解释变量很少(或缺乏预测能力)。

对于第一个问题,您可以查看SMOTE (合成过采样https://imbalanced-learn.org/stable/references/generated/imblearn.over_sampling.SMOTE.html)。在任何情况下,您都需要获得更多的平衡类,以解决“第二类问题”。

第二个问题可以通过添加新的(生成)特性来解决。您可以添加“交互”,例如x_1 - x_2x_1 / x_2等。通常使用“减号”和“除以”。通过这样做,您可以(有时)获得解释力,特别是在基于树的模型中。由于所有可能的交互通常都是“大的”,所以您需要进行特性选择(即只保留“最佳”交互),例如基于特性的重要性。或者,您可以使用所有可能的交互和使用“收缩”的功能,例如基于拉索或岭。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/106219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档