https://github.com/jlzhong23/seedcup_prelim2017_final
2017种子杯初赛
https://github.com/jlzhong23/seedcup_prelim2017_final
cnn elo python
Last synced: 5 months ago
JSON representation
2017种子杯初赛
- Host: GitHub
- URL: https://github.com/jlzhong23/seedcup_prelim2017_final
- Owner: JLZhong23
- Created: 2017-10-01T13:25:29.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-10-05T17:46:38.000Z (about 8 years ago)
- Last Synced: 2024-04-15T00:41:54.413Z (over 1 year ago)
- Topics: cnn, elo, python
- Language: Python
- Homepage:
- Size: 2.43 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 2017种子杯初赛
### CNN模型图

### 使用语言及运行环境
Python 2.7.13 on Linux
需要模块:numpy,pandas,tensorflow
### 代码相应接口及变量含义
1、Data_get.py生成所需数据
2、CNN.py对数据进行训练
3、UseModel.py生成预测文件Data_get.py
文件作用:整理相关数据,获取训练数据集文件以及测试数据集文件
生成文件说明:
'Team_elo.csv'队伍Elo天梯积分数据
'TeamSRS.csv'队伍平均胜率,得分,SRS等数据
'TeamTotal.csv'队伍三分命中,出手,两分命中,出手等数据
'TeamData_win.csv'训练集中队伍比赛胜负情况数据
'TeamDataTrain.csv'最终训练使用数据
'TeamDataTest.csv'需要预测比赛的相关数据
文件使用说明:直接python2 运行文件
#### CNN.py
文件说明:训练模型搭建,使用一层卷积层,一层池化,一层全连接隐藏神经元,一层全连接输出
卷积层 :使用3×3卷积窗口,一个输入通道,64个卷积核
池化层 :2×2池化窗口,步长为1,不改变深度
隐藏层 :128个隐藏神经元
输出层 :2个输出,分别代表客场,主场胜负
文件使用:直接python2 运行文件
#### UseModel.py
文件说明:训练好的模型使用,分为图搭建,训练好的模型导入,预测,预测结果生成文件几块
文件使用:直接python2运行文件
### 对于模型参数的选择以及优化思路
#### 参数选择:
输入参数的选取 :对每一场比赛,我们有两支队伍,对每只队伍,我们提取了30个特征信息作为参数,最终每场比赛有60个特征参数。
卷积层参数选取 :卷积层的参数选取主要在卷积核的个数选取上,由于参数量不大,所以选取3×3的卷积核,在个数上,卷积核个数选取小于60的话,由于我们选取队伍参数之间的关联性不大,所以,60个左右的参数较为合适。
池化层参数 :池化过程中,我们将卷积得到的图在橫纵坐标上压缩两倍,让深度不变,降低接下来全连接的计算量。
隐藏层 :通过池化到达隐藏层的参数个数为3×5×64,由于输出元个数为2,相较于输入参数个数较小,所以我们选择使用128个隐藏神经元个数,大概为输出参数两倍。
输出层 :输出层使用两个神经元,分别代表客场与主场队伍的胜负情况。
#### 优化思路:
数据归一处理 :由于最初输出为主场胜的置信度,是一个0-1之间的数,且在输入参数中存在负数情况,所以选取将数据线性归一到-1-1之间。
边缘性处理 :为了防止极个别数据,在归一后运算后导致值波动太大导致最后数据溢出的情况的发生,我们通过对这些太小数据映射处理解决。
防止过拟合化 :使用dropout提高数据泛化程度
优化器 :因为我们需要输出结果的稳定性,泛化性,希望最终结果相对收敛,所以我们没有选择常见的几种梯度下降算法,选择了自适应性的Adam来进行优化。
### 开发者
slaxes
sunhaohai