我如何决定我的 X 和 Y 变量来预测抛硬币?

数据挖掘 机器学习 回归 线性回归
2022-03-13 02:16:28

所以我是数据科学的新手,并试图解决我的导师给我的一些问题。我遇到了这个问题,其中有多次抛硬币,其中十次被记录下来。我应该创建一个模型来预测另一次抛硬币的结果。

我附上了一个数据集可能是什么样子的示例。[1]:https ://i.stack.imgur.com/WsBve.png

我试图将所有 Head 转换为 1,将所有 Tail 转换为 0,然后应用简单的线性回归(作为起点),但对我的 X 和 Y 变量将是什么感到非常困惑。目前,我没有将数据集拆分为训练集和测试集,因为数据集相对较小。

提前致谢!

2个回答

根据描述,我不会使用机器学习来完成这项任务。只是统计数据。看看二项分布不知道您的所有数据,我无法为您解决问题,但这就是您的导师要求您做的事情。我的猜测是数据显示有偏见的硬币。

这类问题是分类而不是回归。简单的线性回归不是要使用的算法。

我的第一个想法是计算得到正面的概率和得到反面的概率(这将是1P(heads))。然后,您可以使用它来对下一次抛硬币做出最佳猜测。如果你得到P(heads)>0.5,您可能会猜测下一次翻转将作为正面出现。在没有更多信息的情况下,这是可行的,但对于更复杂的场景(例如疾病检测),您可能会发现一种错误比另一种更难以接受,因此您可能会设置不同的阈值。这涉及到关于概率预测(不是硬分类)、适当的评分规则和决策理论的想法。

然后我看了你附上的图片,我有了另一个想法。你有不同的硬币被翻转。是的,您可以使用总体概率来进行猜测,但硬币不必都具有相同的正面朝上的概率。然后你可以使用结果(0对于头部,1尾巴)作为你的Y变量,硬币作为你的X多变的。这将类似于 ANOVA,授予更多的预测目的而不是倾向于使用 ANOVA(以及某种广义线性模型而不是线性模型,但该讨论需要一个单独的问题)。

这可以与逻辑回归拟合,如下面的 R 代码所示。

coin <- as.factor(rep(1, 5), rep(2, 5), rep(3, 5), rep(4, 5), rep(5, 5))
flip_outcome <- c(0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1)
L <- glm(flip_outcome ~ coin, family = binomial)

翻转次数很少,您的预测能力就会很差,但这是一个很好的玩具示例。