Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践
这篇文┞仿,我们来应用深度进修来猜测 NBA 比赛结不雅。经由过程本文,我们可以进修到:
- 若何爬取 NBA 技巧统计数据;
- 若何预处理数据;
- 若何搭建简单的深度收集模型;
- 若何猜测比赛结不雅。
最终我们获得一个猜测第二天比赛精确率 100% 的模型。
技巧统计数据收集
要用深度进修来猜测比赛结不雅,须要有大年夜量技巧统计数据作为进修样本。
来看下官方的技巧统计网站:http://stats.nba.com/schedule
打开浏览器的开辟者对象,点击每场比赛右边的 BOX SCORE,我们就能看到会请求如许的一个 json 文件:
具体到我们要找的数据统计,是这个 json 琅绫擎的 hls (主队数据) 和 vls (客队数据):
11 场全部精确,amazing !!
url 是这种格局:
https://data.nba.com/data/10s/v2015/json/mobile_teams/nba/2017/scores/gamedetail/0021700228_gamedetail.json
多测验测验几回就可以发明规律:
- https://data.nba.com/data/10s/v2015/json/mobile_teams/nba/ 这个是固定的;
- 2017 是赛季开端年份,比瘸老赛季则是 2016;
- /scores/gamedetail/ 和 最后的 _gamedetail.json 也是固定的;
- 0021700228 则是比赛的 id,规律为 002 是规定的,17 则是赛季开端年份的后两位,如上赛季是 16;00228 则是 5 位的数字,大年夜 1 开端,不足补零,比如该赛季第一场是 00001,而 00228 就是第 228 场比赛;
- 抓到的 url 是 https,其实 http 也是支撑的,抓取时比 https 快点。
收集脚本比较简单,就是轮回获取,然后存 redis。
对于我们要用来跑练习的数据,须要整顿成 主队数据 - 客队数据的方法,并增长一个 win or lose 的 label (篮球比赛没有平局)。
- 127.0.0.1:6379> HGET gamedetaildiff 0021700228_gamedetail.json
- "{u'ast': 2, 'win': 1.0, u'fbptsa': 6, u'tf': 1, u'bpts': -4, 'away': u'LAC', u'pip': -2, 'home': u'CHA', u'dreb': 4, u'fga': 4, u'tmtov': 0, u'scp': 14, 'date': u'2017-11-19', u'fbptsm': 5, u'tpa': -3, u'fgm': 1, u'stl': 2, u'fbpts': 10, u'ble': 13, u'tov': -6, u'oreb': 1, u'potov': 16, u'fta': 10, u'pipm': -1, u'pf': -6, u'tmreb': -2, u'blk': 3, u'reb': 5, u'pipa': -4, u'ftm': 10, u'tpm': 3}"
数据预处理
我们用 Pandas 来做数据处理,异常便利。
先直接大年夜 redis 里读入数据:
跑下我们模型的猜测结不雅:
- import pandas as pd
- import redis
- import ast
- cli = redis.Redis()
- data = cli.hgetall("gamedetaildiff")
- df = pd.DataFrame([ast.literal_eval(data[k]) for k in data])
- df = df.fillna(value=http://ai.51cto.com/art/201711/0.0) # 用 0 弥补空白数据
推荐阅读
CNN与RNN对中文文本进行分类--基于TENSORFLOW实现
Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践运行 python run_cnn.py test 在测试集长进行测试。 练习与验证还可以经由过程进一步的调节参数,来达到更>>>详细阅读
本文标题:使用深度学习来预测NBA比赛结果
地址:http://www.17bianji.com/lsqh/39191.html
1/2 1