预测英雄联盟(LOL)比赛结果

2024-06-15 03:04

本文主要是介绍预测英雄联盟(LOL)比赛结果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

图片来源网络

总结

使用pandas和scikit-learn进行快速的机器学习。只使用英雄选择和第一滴血、一龙、一塔、一大龙的信息就可以获得80%的预测准确率。

参考视频

环境

需要安装pandasscikit-learn包,分别用于读取文件和使用机器学习模型:

pythhon -m pip install pandas, scikit-learn

数据集

数据集

其中重要的字段有:

  • 获胜者
  • 一男爵、一小龙、一塔、一血、一水晶、一峡谷先锋
  • 英雄BP和召唤师技能

数据稍微有点过时了,是7年前的排位数据。

代码

import json
import pandas as pd
# 读取数据 
df = pd.read_csv('games.csv')  # 比赛数据
champ_data = json.load(open('champion_info.json')) # 英雄名称和id的对应def id2name(id):return champ_data['data'][str(id)]['name']for cid in ['t1_champ1id','t1_champ2id','t1_champ3id','t1_champ4id','t1_champ5id','t2_champ1id','t2_champ2id','t2_champ3id','t2_champ4id','t2_champ5id']:df[cid[:-2]] = df[cid].apply(id2name)# 只使用英雄名称和第一滴血、一龙、一塔、一大龙的信息
df = df[['t1_champ1', 't1_champ2','t1_champ3','t1_champ4','t1_champ5', 't2_champ1', 't2_champ2','t2_champ3','t2_champ4','t2_champ5', 'winner','firstBlood', 'firstDragon', 'firstTower','firstBaron']]# 将英雄名称编码成数字
encoding1 = [pd.get_dummies(df[col], prefix='t1') for col in ['t1_champ1','t1_champ2','t1_champ3','t1_champ4','t1_champ5'] ]
combined_df1 = sum(encoding1)encoding2 = [pd.get_dummies(df[col], prefix='t2') for col in ['t2_champ1','t2_champ2','t2_champ3','t2_champ4','t2_champ5'] ]
combined_df2 = sum(encoding2)df = df.join(combined_df1).join(combined_df2)df = df.drop(['t1_champ1','t1_champ2','t1_champ3','t1_champ4','t1_champ5', 't2_champ1','t2_champ2','t2_champ3','t2_champ4','t2_champ5'], axis=1)from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifierx,y = df.drop('winner', axis=1), df['winner']
x_train,x_test , y_train, y_test = train_test_split(x,y,test_size=0.2)# 使用随机森林分类器
clf = RandomForestClassifier(n_jobs=-1)
clf.fit(x_train, y_train)
score = clf.score(x_test,y_test)
print(f'准确率:{score}')# 重要性排序
importance = dict(zip(clf.feature_names_in_, clf.feature_importances_))
sorted_importance = sorted(importance.items(), key=lambda x: x[1], reverse=True)
print("前10重要的因素:")
print(sorted_importance[:10])# 计算 崔丝塔娜 在历史排位中的胜率
champ_name = 'Tristana'
wins1 = len(df[(df[f't1_{champ_name}']==1) & (df['winner'] == 1)])
wins2 = len(df[(df[f't2_{champ_name}']==1) & (df['winner'] == 2)])losses1 = len(df[(df[f't1_{champ_name}']==1) & (df['winner'] == 2)])
losses2 = len(df[(df[f't2_{champ_name}']==1) & (df['winner'] == 1)])
print(f'Tristana 胜率为:{(wins1+wins2) / (wins1+wins2+losses1+losses2)}' )

运行结果:

准确率:0.799281413866770210重要的因素:
[('firstBaron', 0.16264685201450763), ('firstTower', 0.1157341294170909), ('firstDragon', 0.06596263062483931), ('firstBlood', 0.0185560893560152), ('t2_Tristana', 0.004941789639522274), ('t1_Tristana', 0.00489940550998658), ('t2_Kayn', 0.004508701682113675), ('t1_Kayn', 0.004488279354184191), ('t2_Vayne', 0.0044497665526188855), ('t1_Vayne', 0.004441653744800986)]
Tristana 胜率为:0.5170607717784795

这篇关于预测英雄联盟(LOL)比赛结果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1062249

相关文章

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测 目录 时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测基本介绍程序设计参考资料 基本介绍 MATLAB实现LSTM时间序列未来多步预测-递归预测。LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为

机器学习回归预测方法介绍:优缺点及适用情况

机器学习中的回归任务是预测连续变量的值,这在金融、医疗、市场分析等领域有着广泛的应用。本文将介绍几种常见的机器学习回归方法,探讨它们的基本原理、优缺点及适用情况。 目录 1. 线性回归(Linear Regression) 2. 多项式回归(Polynomial Regression) 3. 决策树回归(Decision Tree Regression) 4. 随机森林回

首次使用回声状态网络 (ESN) 和语音特征进行帕金森病 (PD) 预测

帕金森病(Parkinson's disease, PD)是一种使人衰弱的神经退行性疾病,它需要进行精确和早期的诊断,以便为患者提供有效的治疗和护理。这种疾病是由James Parkinson在1817年首次确定的,其特征是多巴胺生成神经元的退化。多巴胺的不足导致了一系列症状,包括静止性震颤、肌肉僵硬、运动迟缓(姿势不稳定)、以及其他重要特征,如睡眠障碍、心律失常、便秘和语音变化,这

Excel做简单的趋势预测

这种方法不能代替机器学习,时序分析等,只是为后面的时序预测提供一个经验认识。 step1         选中序号列(或时间列)与预测列如图1所示: 图1 step2         工具栏点击“数据”,然后再“数据”下点击“预测模型”,如图2所示: 图2 step3         这样就会跳出窗口,此处可以进行一些参数设置如图3所示: 图3

AI智能时代:ChatGPT如何在金融市场发挥策略分析与预测能力?

文章目录 一、ChatGPT在金融策略制定中的深度应用客户需求分析与定制化策略市场动态跟踪与策略调整策略分析与优化 二、ChatGPT在算法交易中的深度应用自动交易策略制定交易执行与监控风险管理 三、未来展望《智能量化:ChatGPT在金融策略与算法交易中的实践》亮点内容简介作者简介目录获取方式 随着人工智能技术的飞速发展,ChatGPT作为一种先进的自然语言处理模型,正逐渐

【深度学习驱动流体力学】湍流仿真到深度学习湍流预测

目录 一、湍流项目结构二、三个OpenFOAM湍流算例1. motorBike背景和目的文件结构和关键文件使用和应用湍流仿真深度学习湍流预测深度学习湍流预测的挑战和应用结合湍流仿真与深度学习 2. pitzDaily背景和目的文件结构和关键文件使用和应用 3. pitzDailyMapped背景和目的文件结构和关键文件使用和应用 一、湍流项目结构 下面每个案例都包含了必要

风速预测 | 基于MATLAB的无迹卡尔曼滤波算法UKF、SVR-UKF、ANN-Kalman等时间序列风速预测模型

基本描述 基于MATLAB的无迹卡尔曼滤波算法UKF、SVR-UKF、ANN-Kalman等时间序列风速预测模型 模型步骤 时间序列风速预测模型基于MATLAB的无迹卡尔曼滤波算法(Unscented Kalman Filter, UKF)、SVR-UKF(Support Vector Regression - Unscented Kalman Filter)和ANN-Kalman(Arti

QuantML-Qlib Model | Kansformer: KAN+Transformer时序模型用于股票收益率预测

QuantML-Qlib Model | Kansformer: KAN+Transformer时序模型用于股票收益率预测 原创 QuantML QuantML 2024-06-18 20:57 上海 Content 之前公众号介绍了几篇KAN的文章,也做过KAN相关的模型: What KAN I say?KAN代码全解析 QuantML-Qlib开发版 | 最新神经网络结构KAN用于因

python数据分析案例-信用卡违约预测分析

一、研究背景和意义 信用卡已经成为现代社会中人们日常生活中不可或缺的支付工具,它不仅为消费者提供了便利,还为商家提供了更广泛的销售渠道。然而,随着信用卡的普及和使用量的增加,信用卡违约问题逐渐成为金融机构面临的重要挑战。信用卡违约不仅给金融机构带来财务损失,还损害了其声誉和信用评级,从而影响其长期可持续发展。因此,有效预测信用卡违约风险对金融机构来说至关重要。。。。。 二、实证分析 这个数据

机器学习在材料预测方面的应用

文章目录 1.机器学习的基本流程2.常见的材料性能3.常见的材料数据库4.机器学习模型及应用5.数据预处理过程6.常用的机器学习模型1.线性回归2.逻辑回归3.支持向量机(SVM)4.随机森林 1.机器学习的基本流程 #mermaid-svg-hAOmlARgRIIiVxQa {font-family:"trebuchet ms",verdana,arial,sans