vlambda博客
学习文章列表

双色球数据分析(朴素贝叶斯算法预测蓝球)

 本文采用朴素贝叶斯算法对双色球蓝球进行预测分析。



本文依然想论证一下,假定在已知6个红球的情况下,能否准确预测出蓝球是几号。


上述命题可以看成是一个分类问题,即6个红球是特征,蓝球是类别,共16个类别。


先回顾一下用sklearn库进行机器学习的实现步骤:

    (1)获取数据集

    (2)划分数据集

    (3)特征工程 归一化

    (4)算法预估器

    (5)模型评估

本文的特征工程选择的是归一化处理,是因为标准化处理会使得特征矩阵中存在负值,而朴素贝叶斯算法要求特征矩阵中不能出现负值。


朴素贝叶斯算法实现代码如下:

def analysis_nb(): """ 用朴素贝叶斯算法对蓝球进行分析 :return: """ # 1)获取数据集 rbb = load_rbb()
# 2)划分数据集 x_train, x_test, y_train, y_test = train_test_split(rbb.data, rbb.target, random_state=8)
# 3)特征工程 归一化 transfor = MinMaxScaler() x_train = transfor.fit_transform(x_train) x_test = transfor.transform(x_test)
# 4)朴素贝叶斯算法预估器 estimator = MultinomialNB(alpha=1) estimator.fit(x_train, y_train.ravel())
# 5)模型评估 score = estimator.score(x_test, y_test)
return score

先把跑分结果拿出来看一下:

score = analysis_nb()print(score)
0.06862745098039216

6.86%,非常接近随机概率~~~


基本可以确定:蓝球出几号,跟红球没啥关系。