KNN算法简单应用之预测队伍胜利

爬取了2019年LPL职业联赛的一些数据,通过大小龙,推塔数,以及队伍击杀数来预测队伍胜利,所以分为爬虫和knn算法俩块
首先是爬虫部分,根据网页结构,创造了一个大列表来储存所有要爬取的url,然后循环这个url爬取
我是写在另一个文件里,所以下面需要导入这个函数,若写在一个文件中则不需要

第一个lol_game_url.py文件:

def make_url():l = []for i in range(68, 100):#73页访问有问题,所以没有爬取if i != 73:s = ''s += 'https://lpl.qq.com/es/stats.shtml?bmid=42%d' % il.append(s)l1 = []for i in range(80):s1 = ''if i < 10:s1 += 'https://lpl.qq.com/es/stats.shtml?bmid=430%d' % ielse:s1 += 'https://lpl.qq.com/es/stats.shtml?bmid=43%d' % il1.append(s1)l2 = l + l1return l2

第二个lol_game_detail.py文件:

#导入相应的模块
import sqlite3
import time
from selenium import webdriver
from lol_game_url import make_url
#获取列表,连接数据库,并循序url列表访问页面
lol_url_list=make_url()
browser=webdriver.Firefox()
# conn=sqlite3.connect(r'D:\BaiduNetdiskDownload\navicat12\navicat\database\spider.db')
# c=conn.cursor()
for i in lol_url_list:browser.get(i)time.sleep(2)#俩个战队名字team1=browser.find_element_by_css_selector('span#teamA_name').textteam2=browser.find_element_by_css_selector('span#teamB_name').text#俩个战队战斗场数,循环爬取每一场数据game_nums = browser.find_elements_by_css_selector('ul#smatch_bar>li')play_group='%svs%s'%(team1,team2)for game_num in game_nums:num = game_num.find_element_by_css_selector('a')game_num1=num.textif num:num.click()time.sleep(1)#战队1和战队2名称team11 = browser.find_element_by_css_selector('p#teama-name').textteam22 = browser.find_element_by_css_selector('p#teamb-name').text#大龙team1_big_dragon = browser.find_element_by_css_selector('span#game-b-dragon-num-left').textteam2_big_dragon = browser.find_element_by_css_selector('span#game-b-dragon-num-right').text#小龙team1_small_dragon = browser.find_element_by_css_selector('span#game-s-dragon-num-left').textteam2_small_dragon = browser.find_element_by_css_selector('span#game-s-dragon-num-right').text#推塔数team1_tower_num = browser.find_element_by_css_selector('span#game-tower-num-left').textteam2_tower_num = browser.find_element_by_css_selector('span#game-tower-num-right').text#总经济team1_gold_num = browser.find_element_by_css_selector('span#game-gold-total-left').textteam2_gold_num = browser.find_element_by_css_selector('span#game-gold-total-right').text#击杀team1_kill=browser.find_element_by_css_selector('p#game-kda-k-total-num-left').textteam2_kill=browser.find_element_by_css_selector('p#game-kda-k-total-num-right').text#战队成员team1_members=[]for i in range(1,6):l=''l+='nr-game-player-name-left-%d'%imember=browser.find_element_by_css_selector('p#%s'%l).textteam1_members.append(member)team1_member=','.join(team1_members)team2_members = []for i in range(1, 6):l = ''l += 'nr-game-player-name-right-%d' % imember = browser.find_element_by_css_selector('p#%s' % l).textteam2_members.append(member)team2_member = ','.join(team2_members)print(play_group)print(game_num1)print('第一个战队', team11)print('大龙数量', team1_big_dragon)print('小龙数量', team1_small_dragon)print('推塔数', team1_tower_num)print('经济数量', team1_gold_num)print('%s队员%s'%(team11,team1_member))print('击杀数',team1_kill)print('第二个战队', team22)print('大龙数量', team2_big_dragon)print('小龙数量', team2_small_dragon)print('推塔数', team2_tower_num)print('经济数量', team2_gold_num)print('%s队员%s' % (team22, team2_member))print('击杀数',team2_kill)print('*' * 100)#数据库添加字段并存储sql="""insert into lpl_match(play_group,game_num,team11,team1_members,team1_big_dragon,team1_small_dragon,team1_tower_num,team1_gold_num,team1_kill,team22,team2_members,team2_big_dragon,team2_small_dragon,team2_tower_num,team2_gold_num,team2_kill)values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"""# params=(play_group,game_num1,team11,team1_member,team1_big_dragon,team1_small_dragon,#         team1_tower_num,team1_gold_num,team1_kill,team22,team2_member,team2_big_dragon,team2_small_dragon,#         team2_tower_num,team2_gold_num,team2_kill)# c.execute(sql,params)# conn.commit()

第三个lol_machinelearning_predict.py中:

#导入相应模块
import sqlite3
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier#连接数据库并读取
conn=sqlite3.connect(r'D:\BaiduNetdiskDownload\navicat12\navicat\database\spider.db')
sql="""select * from lpl_match"""
lol=pd.read_sql(sql,conn)def knn_sklearn():#我们有的数据训练集lol_content=lol.loc[:,['team1_big_dragon','team1_big_dragon','team1_tower_num','team1_kill','team2_big_dragon','team2_small_dragon','team2_tower_num','team2_kill']]#这个是我手动标记的爬取时忘了设置(也不多,就200多条。。。),哪个战队胜利,1是战队1胜,2是战队2胜lol_victory=lol['victory']#分为训练集和目标集,test_size表示以多大比例来分x_train,x_test,y_train,y_test = train_test_split(lol_content,lol_victory,test_size=0.25)#n_neighbors为k值knn = KNeighborsClassifier(n_neighbors=5)knn.fit(x_train,y_train)l=knn.predict_proba(np.array([[0,3,4,15,1,1,9,22]]))#TOP VS IG ,IG赢#可以转换为列表形式l1=l.tolist()[0]print(l1)if l1[0] > l1[1]:print('team1胜利')else:print('team2胜利')
knn_sklearn()

第一个lol_game_url.py文件结果展示(截取部分):
在这里插入图片描述第二个lol_game_detail.py文件结果展示(截取部分):
在这里插入图片描述
第三个lol_machinelearning_predict.py文件结果展示(截取部分):
在这里插入图片描述
数据库展示(截取部分):
在这里插入图片描述
选取了第一个数据来预测,结果是正确的的,因为上面选取特征都会影响经济,所以就没有把经济选进来。对knn算法的理解就是计算你当前数据的特征值和已知数据类型的数据的特征值距离,然后按照大小排序选取,选取几个就是几nn。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/65853.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

世界杯八强即将出炉,iModeluus助您知晓赛果!

世界杯八强之战已渐近尾声&#xff0c;无论是C罗、梅西的遗憾离场&#xff0c;亦或是东道主拼至最后战胜斗牛士&#xff0c;还是内马尔带领的巴西拒绝冷门&#xff0c;已经过去的几天都给我们献上了精彩纷呈的赛事。 今晚的比赛我们依然是期待未减&#xff0c;到底是北欧海盗瑞…

大数据之实战足球盘口、凯利、必发和预测结果分析

现在大点的足球彩票类平台都在搞预测推荐服务&#xff0c;扛着大数据的旗子&#xff0c;安分点的叫做“大数据预测”&#xff0c;博眼球赶时髦的叫“大数据AI算法&#xff08;人工智能算法&#xff09;”&#xff0c;严重点说这是骗取信任。为什么这么说呢&#xff1a; 因为…

【12月17日更新决赛预测】用二元泊松模型预测2022年世界杯淘汰赛结果

用二元泊松模型预测2022年世界杯淘汰赛结果 网上有很多文章用双泊松&#xff08;Double Poisson&#xff09;模型来预测世界杯比赛结果。但是双泊松模型有一个严重的缺陷&#xff0c;那就是它假设比赛中两队的比分是条件独立的。而我们都知道&#xff0c;在对抗性比赛中&…

未来计算机会取代人类吗,未来的人工智能会进化出智慧吗?他们是否会取代人类?...

引言&#xff1a;有关于人工智能概念的提出可以追溯到上个世纪末期&#xff0c;到了最近十年这一概念才逐渐热门起来。目前许多国家都投入大量的资金和人才去研究人工智能技术&#xff0c;可见该技术在未来将会有不可撼动的地位。人工智能时代来袭&#xff0c;它们最终会进化出…

只需3步,快来用AI预测你爱的球队下一场能赢吗?

摘要&#xff1a;作为球迷&#xff0c;我们有时候希望自己拥有预测未来的能力。 本文分享自华为云社区《用 AI 预测球赛结果只需三步&#xff0c;看看你爱的球队下一场能赢吗&#xff1f;》&#xff0c;作者&#xff1a;HWCloudAI。 还记得今年夏天的欧洲杯吗&#xff1f;来自…

磁盘分区工具diskgenius、易我分区大师

对于给磁盘分区&#xff0c;我们知道有很多方式&#xff0c;Windows自带的磁盘管理器就可以实现简单的分区功能&#xff0c;但若是想对磁盘上分区的大小作进一步调整、移动分区、合并分区&#xff0c;甚至克隆磁盘/分区&#xff0c;恢复丢失分区等&#xff0c;就不能单纯指望磁…

看chatGPT怎么帮我们写文章

探索暴风雨的力量与美丽 暴风雨是大自然中一种令人又惊又喜的自然现象。它以其强大的力量和壮观的景象而闻名于世。暴风雨常常带来狂风、暴雨、雷电和可能的冰雹。它们在全球各地发生&#xff0c;无论是在海洋上还是陆地上&#xff0c;都能让我们目睹大自然的力量。 首先&…

你对 ChatGPT 的所有疑问,看这这一篇文章就够了

总会被别人问到&#xff0c;”你听过 ChatGPT 吗&#xff1f;你知道怎么安装吗&#xff1f;帮我装一个呗&#xff01;“等等诸如此类的疑问&#xff0c;前面也写了不少关于 ChatGPT 的文章&#xff0c;相信面前的你估计也有类似的疑问&#xff0c;今天我就把类似的问题梳理总结…

微信朋友圈广告详细说明

根据官方发布的微信广告系统介绍&#xff0c;朋友圈广告来源于微信广告的一部分&#xff0c;与公众号广告形成了一整个体系。关于公众号的广告&#xff0c;简单说&#xff0c;他可以把微信公众号变成广告牌&#xff0c;会根据用户的阅读习惯以及个人信息来进行广告的投放。每一…

今天的微信朋友圈多了一条推广信息

今天早上&#xff0c;不少微信用户在朋友圈中看到了来自微信团队的推广信息&#xff0c;这就是微信即将推出的朋友圈广告。在不久前的中欧商学院举办的“微信全球MBA创新大赛——创意中国2015”活动中&#xff0c;腾讯公司副总裁表示微信朋友圈广告即将上线&#xff0c;这将是微…

微信运营,做好微信朋友圈营销的6个技巧和3点注意事项

如今客户越来越难跟进&#xff0c;借助微信建立客户联系已然成为一种非常有效的方法&#xff01;特别是利用朋友圈营销打造的“信息流广告”&#xff0c;在无形之中就能完成产品的销售。那么如何做好微信朋友圈的营销呢&#xff1f;以下一些实用性技巧和注意事项&#xff0c;希…

微信朋友圈广告投放价格

本地商户对门店周边人群有较强的曝光引客需求&#xff0c;但往往很难实现精准触达&#xff0c;与此同时更面临传统地推难、其它形式费用高、营销流程繁琐、耗时费力等难点。 为解决以上中小商户营销难题&#xff0c;微信广告升级本地广告产品能力&#xff0c;推出针对小商户小额…

朋友圈水果店简短销售文案,水果店朋友圈宣传文案

1、提高自己的审美 想象自己就是一个顾客&#xff0c;看到自己发的内容有没有想买的冲动。图片&#xff0c;视频最好亲力亲为&#xff0c;全部自己去拍&#xff0c;别人拍的可以参考一下拍摄技巧。开水果店主入门学习交流圈子&#xff0c;朋友圈下搜一搜功能&#xff0c;搜水果…

微信朋友圈广告投放

您对微信朋友圈的广告技巧了解多少&#xff1f; 首先&#xff0c;让我们了解一下微信朋友圈的广告。微信朋友圈中的大部分广告都是用图片和文字展示的&#xff0c;并穿插微信官方账号链接。同样&#xff0c;朋友圈中的客户仍然可以通过点赞和评论与他们交流和互动。基于微信系统…

微信朋友圈广告如何投放?怎样投放?

o微信发朋友圈广告宣传都是基于微信公众平台生态模式&#xff0c;以类似好友的优质内容方式在朋友圈中展现的植入式广告&#xff0c;。给予品牌策划推广&#xff0c;当地店面&#xff0c;商品信息&#xff0c;搜集整理客户线索&#xff0c;APP免费下载&#xff0c;发放优惠劵&a…

微信朋友圈广告怎么投放,有那些推广渠道

微信朋友圈广告怎么投放&#xff0c;有那些推广渠道 朋友圈广告推广有哪些定向方式&#xff1f;第一种的话第一是以最小的一个单位地级市的话进行定价投放的&#xff0c;比如说啊像、北京、上海、杭州这种和地级市的话去进行投放&#xff0c;因为另外一种的话就是附近推可以选…

微信朋友圈推广广告怎么投放?

全媒体广告(当地或是全国各地推广业务)微信发朋友圈、抖音视频、快手视频(确保价格低优质)请找我聊!!!咱们更专业!!! 不论你是做房产销售、汽车销售服务、餐馆、专业培训、个人贷款、婚纱影楼、店铺、商业保险这些。。 我们能够让你把你选定范围之内(全国各地、当地)的潜在客户…

微信朋友圈广告怎么做?

一、掌握微信朋友圈广告推广的基本信息1&#xff09;人群定位 手机微信具有准确的数据信息定项功能&#xff0c;可以很好的帮助店家针对目标消费群体进行广告营销&#xff0c;确立广告宣传的准确定位&#xff0c;可以确立广告营销应对整体目标消费群体&#xff0c;更准确地进行…

能聊天、会学习,远不是GPT的终局

自然语言处理&#xff08;NLP&#xff09;技术的发展和运用&#xff0c;使得计算机性能增长速度一举跃过摩尔定律瓶颈&#xff0c;将AI拱入属于它的高光时代。而象征技术融合的ChatGPT一夜爆红&#xff0c;仿佛给整个商业社会带来了一次“技术革命”。 微软、谷歌、百度、华为…

HuggingGPT 刚刚开放了demo!在线演示效果惊艳

编&#xff5c;桃子 源&#xff5c;新智元 浙大&微软推出的HuggingGPT爆火之后&#xff0c;刚刚开放了demo&#xff0c;急不可待的网友自己上手体验了一番。 最强组合HuggingFaceChatGPT「贾维斯」现在开放demo了。 前段时间&#xff0c;浙大&微软发布了一个大模型协作…