监督学习是一种机器学习任务,即学习一种函数,该函数基于示例输入输出对将输入映射到输出。它从由一组训练示例组成的标记训练数据中推断出一个函数。
在这个例子中,我将使用线性回归,这是一种监督学习,因为我以 DataFrame 的形式呈现标记数据。
获取数据
获取和清理数据是整个项目中最难的部分。不幸的是,没有一个整洁的 CSV 文件可以下载。国家彩票的所有结果都按年份存档,自 1994 年开奖以来,每年一页。一共有 27 页,而且是一行又一行可爱的数字,对我来说不切实际,复制粘贴不是一种选择,尤其是 27 次也不行。
我打开了我的 Jupiter Notebook,创建了一个非常简单 法国电报手机号码列表 的循环来更改 URL 并获取每年的 HTML 表,并创建了一个包含所有这些内容的长列表。然后,我创建了另一个循环来获取列表中的每个元素,然后创建一个名为 DataFrame 的方便的数据结构并将它们全部合并在一起。
删除£符号后,我能够将所有内容转换为数字,并将每个球分成不同的列,我准备开始一些机器学习。

探索性数据分析 (EDA)
我想看看每个球被拉出的频率,我马上就注意到了一些东西。检查频率总是一个好主意。
50-59 的频率计数要低得多,Camelot 引入它们只是为了增加获胜的难度,并通过多次累积奖金来增加奖金。
不吉利的数字 13 是被抽中次数最少的球,共出现 298 次,比被抽中次数最多的数字 38 少 26.7%,被抽中 408 次。
在所有数字中,频率没有太大偏差
线性回归
我使用基本线性回归模型来预测每次抽球的结果。我使用头奖作为 x 值,这样我就可以根据赌注金额预测数字。
正如我在数据清理部分中提到的那样,我为每个被抽出的球创建了一个单独的列,并且没有按任何顺序对值进行排序,只是按照它们出现时的顺序进行排序。我创建了另一个循环来遍历头奖奖金和每个日期抽出的球号。经过 7 个循环后,我把每个数字都放到了它的位置。查看下面我简洁的信息图,其中包含一些关于每个球的更多详细信息。