关于模型选择的帮助

我正在研究机器学习领域。我有一个用例和数据,但我对一些事情不太确定,主要是我的模型将如何运行,以及应该从哪个模型开始。用例的详细信息和问题如下。任何建议都将不胜感激。

我的主要问题是:

  1. 当结果基于随时间累积的分数时,是否有可能设计一个模型,以便它能够持续运行,并在任何时候都能给出最佳猜测,无论是在学期的第一天还是三个月后?

  2. 我应该从哪个模型开始?我在考虑使用分类器,但排名也可能很有趣。

用例详情

学徒参加一个分学期的课程,共四个学期,每个学期持续六个月。在一个学期中,学徒执行各种操作和流程,并根据他们的表现获得分数。每个学期结束后,学徒要么有足够的分数晋级到第二学期,要么就失败了。

我们正在研究构建一个模型,以帮助识别有失败风险的学徒,并在他们能够获得帮助之前有足够的时间。

每个程序都被分配了一个复杂度代码,分为简单、中等和高级,并根据复杂度进行加权。

关于特征,我们有以下几项:

  • 初次面试分数
  • 入学考试分数
  • 每个学徒执行的简单程序总数
  • 每个学徒执行的中等程序总数
  • 每个学徒执行的高级程序总数
  • 每个复杂度级别的平均分数
  • 人口统计信息(国籍、年龄、性别)

我不确定的是模型如何工作以及我们将在何时运行它。例如,如果我们在学期的第一天运行它,我假设每个人都会失败,因为每个人的程序分数都是0

当前计划是在每个学期的2-3个月后运行模型,这样就有足够的分数数据,并且也有足够的时间帮助任何有失败风险的学徒。


回答:

这显然是一个分类模型问题:

y = f(x[0],x[1], ..., x[N-1])

其中 y (布尔输出) = {通过, 失败} 并且 x[i] 是不同的特征。

有大量的机器学习分类模型,如朴素贝叶斯、神经网络、决策树等,可以根据数据类型使用。如果您正在寻找一个建议特定机器学习模型的答案,那么我需要更多相关数据。然而,一般来说,这个流程图可以帮助选择合适的模型。您还可以阅读Andrew-Ng的CS229课程的第5讲关于模型选择的内容。

现在回到基本方法,一些特征如初次面试分数、入学考试分数等,您已经提前知道。而有些特征如程序中的表现,则是在学期中逐渐知道的。

因此,可以说模型在每个学期末的预测效果会更好

然而,我可以提出一些建议来进一步改进:

  • 不要将初始程序分数设为0,而是将其设为该学徒在其他程序中过去表现的平均值/中位数。
  • 您甚至可以构建一个子模型来分析程序分数与面试分数之间的关系,因为它们并非完全独立。(我将在回答的后续部分解释这句话)
  • 然而,如果这是该学徒的第一个学期,那么您将不会有该学徒的此类数据。在这种情况下,您可能需要考虑与该学徒类似档案的其他学徒的平均表现。如果数据集不是很大,K近邻算法在这里可能非常有用。然而,对于大型数据集,KNN会受到维度灾难的影响。
  • 此外,绘制y与不同变量x[i]之间的图表,以便观察y相对于每个变量的独立变化情况。
  • 很可能(虽然这只是一个假设),y会更多地依赖于初始变量,而非后期获得的变量。原因是后期变量并非完全独立于前期变量
  • 我的观点是,如果可以创建一个模型来预测一个学期的输出,那么也可以创建一个类似的模型来预测第一次程序测试的输出。
  • 最后,由于模型可能在很大程度上依赖于人口统计因素和其他因素,它可能不是一个非常成功的模型。出于同样的原因,我们无法准确预测选举结果、足球比赛结果等,因为它们在很大程度上依赖于实时动态数据。
  • 对于基于不同程序表现的动态预测,时间序列分析可能会有所帮助。但在任何情况下,最终结果将在很大程度上取决于学徒在动机和表现上的持续性,这在每个学期末会变得更加清晰。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注