赞
踩
背景:根据往期历史中奖记录,预测下次中奖的概率!总共有日期和中奖结果两个字段,中奖为1,不中奖为0,休息日的记录删除不要!
import numpy as np import pandas as pd import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense # 准备训练数据 df = pd.read_excel('zj.xlsx', sheet_name='武神') data = df['结果'].tolist() n_steps = 5 # 每个样本的时间步数,可以自己设置,这里意思是根据前五次结果预测第六次的 X, y = [], [] for i in range(len(data) - n_steps): X.append(data[i:i+n_steps]) y.append(data[i+n_steps]) X = np.array(X).reshape(-1, n_steps, 1) y = np.array(y) # 构建模型 model = Sequential() model.add(LSTM(50, activation='relu', input_shape=(n_steps, 1))) model.add(Dense(1, activation='sigmoid')) model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) # 训练模型 model.fit(X, y, epochs=100, batch_size=1) # 使用模型进行预测 test_data = data[-5:] # 用于预测的最后五个中奖结果 test_input = np.array(test_data).reshape(1, n_steps, 1) prediction = model.predict(test_input) prediction = np.round(prediction) # 四舍五入为最接近的整数 print("预测结果:", prediction)
import pandas as pd from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression # 假设data.csv是包含日期和中奖结果的数据文件 data = pd.read_excel('zj.xlsx', sheet_name='武神') # print(data.head()) # 确保日期是日期时间类型 data['日期'] = pd.to_datetime(data['日期']) # 排序数据按照日期 data = data.sort_values('日期') # 转换中奖结果为0和1 # data['结果'] = data['结果'].apply(lambda x: 1 if x == '中奖' else 0) # 构建特征和标签 data['前一次结果'] = data['结果'].shift() # 前一次的中奖结果 data = data.dropna() # 去除NaN值 X = data[['前一次结果']] y = data['结果'] # 划分数据集为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 使用逻辑回归模型 model = LogisticRegression() model.fit(X_train, y_train) # 预测下一次中奖结果 last_result = data['结果'].iloc[-1] # 最后一次的中奖结果 prediction = model.predict([[last_result]]) if prediction[0] == 1: print("预测值为:", prediction) print("下一次可能中奖!") else: print("预测值为:", prediction) print("下一次可能不会中奖。")
# 假设这是你的历史数据,1代表中奖,0代表未中奖
historical_data = [1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1]
# 计算中奖的次数
win_count = sum(historical_data)
total_draws = len(historical_data)
# 计算中奖的概率
win_probability = win_count / total_draws
print(f"中奖概率为: {win_probability}")
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。