python双色球-(三)线性回归预测

该代码示例展示了如何基于历史彩票数据训练线性回归模型来预测开奖结果,但作者指出预测精度可能不高,需要尝试更多模型以提高准确性。代码从Excel文件中提取数据,对红球和蓝球进行预测,并输出模型的截距和系数。
摘要由CSDN通过智能技术生成

参考了其他大神的代码,通过历史数据训练线性回归模型,然后给出预测值,但是这预测看起来并不那么准,只是应用线性回归模型的一个示例,如果需要更好更精确的结果,还需要不断地调整,不断地尝试各种算法模型,相信总有一款模型能靠近500W俱乐部。

print('预测开始了')

"""取读历史数据,指定标识"""
def get_lotto_data(data, lotto, lotto_id):
    data['lotto_id'] = lotto_id
    X = []
    Y = []
    # single_square_feet, single_price_value
    for s, p in zip(data['lotto_id'], data[lotto]):
        X.append([float(s)])
        Y.append(float(p))
    return X, Y
 
 
# 训练线性回归模型
def linear_model_test(X, Y, predict_value):
    regr = linear_model.LinearRegression()
    regr.fit(X, Y)
    predict_outcome = regr.predict(predict_value)
    predictions = {}
    predictions['intercept'] = regr.intercept_
    predictions['coefficient'] = regr.coef_
    predictions['predicted_value'] = predict_outcome
    return predictions
 
"""使用线性回归推测中奖号码"""
def get_predicted_num(file, lotto, lotto_id, num):

    X, Y = get_lotto_data(file, lotto, lotto_id)

    predict_value = [[33]]
    result = linear_model_test(X, Y, predict_value)
    print("num", num,
          'Intercept value', result['intercept'],
          'Coefficient', result['coefficient'],
          'Predicted value', result['predicted_value'])

columns = {
        'date': str,
        'id': str,  # 期数
        'r1': int,  # 红1
        'r2': int,  # 红2
        'r3': int,  # 红3
        'r4': int,  # 红4
        'r5': int,  # 红5
        'r6': int,  # 红6
        'b1': int,  # 蓝1
    }
LoadPath = f'DoubleBall.xlsx'
book=load_workbook(LoadPath, data_only=True)#加载已有Excel文档
sheet_result=book['Sheet']

results = []
cnt = 0
for i in sheet_result:
    if cnt > 0:
        dit = {}
        cnt = 1
        dit['id'] = i[1].value
        dit['date'] = i[0].value
        dit['r1'] = i[2].value
        dit['r2'] = i[3].value
        dit['r3'] = i[4].value
        dit['r4'] = i[5].value
        dit['r5'] = i[6].value
        dit['r6'] = i[7].value

        dit['b1'] = i[8].value

        results.append(dit)

    cnt+=1

df = pd.DataFrame(columns=columns, data=results)
df = df.sample(100)
# 使用线性回归模型进行预测 
get_predicted_num(df, 'r1', 1, 5)  # 预测红球1
get_predicted_num(df, 'r2', 2, 10)  # 预测红球2
get_predicted_num(df, 'r3', 3, 15)  # 预测红球3
get_predicted_num(df, 'r4', 4, 20)  # 预测红球4
get_predicted_num(df, 'r5', 5, 24)  # 预测红球5
get_predicted_num(df, 'r6', 6, 29)  # 预测红球6
get_predicted_num(df, 'b1', 7, 9)  # 预测蓝球1

print('预测结束了')

以下是一个使用Python进行双色球预测的代码示例: ```python # 导入所需库 from sklearn.linear_model import LogisticRegression # 定义线性回归模型 def linear_model_test(X, Y, predict_value): regr = LogisticRegression() regr.fit(X, Y) predict_outcome = regr.predict(predict_value) predictions = {} predictions\['intercept'\] = regr.intercept_ predictions\['coefficient'\] = regr.coef_ predictions\['predicted_value'\] = predict_outcome return predictions # 使用预测结果函数进行预测 get_predicted_num(data, 'r1', 1) # 预测红1 get_predicted_num(data, 'r2', 2) # 预测红2 get_predicted_num(data, 'r3', 3) # 预测红3 get_predicted_num(data, 'r4', 4) # 预测红4 get_predicted_num(data, 'r5', 5) # 预测红5 get_predicted_num(data, 'r6', 6) # 预测红6 get_predicted_num(data, '蓝球', 7) # 预测蓝7 # 绘制饼图 x = blue_ball_count.index.tolist() y = blue_ball_count.values.tolist() pie = ( Pie() .add("", \[list(z) for z in zip(x, y)\]) ) pie.render_notebook() ``` 请注意,这只是一个示例代码,具体的预测结果和绘图方法可能需要根据实际情况进行调整和修改。 #### 引用[.reference_title] - *1* *2* *3* [用Python预测双色球福利彩票中奖号码(请不要当真)](https://blog.csdn.net/weixin_58610844/article/details/119425899)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值