这涉及到一个来自https://stackoverflow.com/help/on-topic的“软件算法”
我正在处理一个来自hacker rank的非竞赛问题 https://www.hackerrank.com/challenges/predict-missing-grade
基本上,你会得到一组学生的测试数据,这些数据包括他们在数学以外的其他科目的成绩,你需要根据他们在其他科目的测试成绩来预测他们的数学成绩。比如,你得到的数据是
{“SerialNumber”:1,”English”:1,”Physics”:2,”Chemistry”:3,”ComputerScience”:2}
你将如何生成该学生的数学成绩,或者如何构建一个预测引擎来生成数学成绩?我知道这是这个问题的核心,但有人能给我一些提示或推荐一些资源,让我有机会弄明白并真正开始吗?我真的很想学习。
回答:
有很多可能的策略来做这件事,提出这个问题的目的是试图确定哪种策略效果最好。
要达到100%的正确率似乎是不可能的,所以真正的目标是提出一个策略,使其提供的正确答案比错误答案多,并且希望能超过当前的最佳成绩。截至目前,最好的成绩似乎是正确答案比错误答案多约46%,如果我读对了评分的话。
快速浏览前几个训练数据,看起来英语成绩可能是数学成绩的一个好指标。原因是它似乎经常与英语成绩相差1(English Score + 1
似乎能得到稍微好一些的结果)。因此,一个简单的策略可能是直接将英语成绩作为数学成绩返回。然而,你需要仔细查看数据,看看数学成绩是否真的比英语成绩多1的情况更多。这种方法看起来比随机猜测要好很多,但在正确与错误答案的比例上大致相当,所以要接近当前的最佳成绩,还需要大幅改进。因此,你可能需要研究一下当使用英语成绩被判定为错误时,其他成绩的情况。或者,你可以寻找不同的指标。