NBA是美国运动员薪酬最高的几大联赛之一,由于每支球队都有工资上限,作为球队管理人员如何更有效的确定球员薪水(避免溢价合同)是十分重要的。研究人员发现,在支付NBA球员薪酬方面、得分、球员国家、球队、助攻、篮板和犯规等等都是影响因素。本案例通过分析球员相关的多方面因素,对球员薪水进行回归预测,是一个典型的回归分析预测案例。本部分包括NBA球员薪水预测建模示例和快速创建两部分。
首先对数据集的特征列进行简单说明,各特征列的具体含义如图-1所示。
表-1 特征列含义说明
|
特征列 |
特征列含义说明 |
|
Player |
球员(名字) |
|
TRB% |
总篮板 |
|
Salary |
薪水 |
|
AST% |
助攻 |
|
NBA_Country |
球员国家 |
|
STL% |
抢断 |
|
NBA_DraftNumber |
选秀编号 |
|
BLK% |
盖帽 |
|
Age |
年龄 |
|
TOV% |
失误 |
|
Tm |
球队 |
|
USG% |
使用率 |
|
G |
出场数 |
|
OWS |
进攻正负值 |
|
MP |
出场时间 |
|
DWS |
防守正负值 |
|
PER |
球员效率值 |
|
WS |
净正负值 |
|
TS% |
真实命中率 |
|
WS/48 |
每48min胜利贡献值 |
|
3PAr |
投中三分球的比率 |
|
OBPM |
超出联盟进攻平均水平值 |
|
FTr |
罚球命中率 |
|
DBPM |
超出联盟防守平均水平值 |
|
ORB% |
进攻篮板 |
|
BPM |
超出联盟平均水平值 |
|
DRB% |
防守篮板 |
|
VORP |
该球员与可替换球员的绝对价值差 |
然后调用人工智能平台数据准备模块-获取csv列名和列参数信息组件,对数据集有个初步了解,发现数据集共有485条数据,每条数据28个特征,其中3Par、FTr、TOV%、TS%存在空值需要修复,Age、G、MP、NBA_DraftNumber、Salary是整型数值数据,NBA_Country、Player、Tm是非数值型数据,其余都是浮点数。
首先在[人工智能平台]左侧导航栏中选择[文件管理/我的文件]菜单项,然后新建文件夹,上传项目需要的训练数据集和测试数据集。
图-1 上传数据集
在[人工智能平台]左侧导航栏中选择[样例库管理/AI建模]菜单项,单击<创建工程>按钮,新建工程工作目录选择文件管理中自己存放数据的文件夹。单击<确定>按钮,完成工程创建。
图-2 新建工程
图-3 创建任务流
双击创建的任务流,进入任务流组件选择页面,此时会看到左侧包含输入、框架、算法、输出4个部分,此案例主要使用到算法-机器学习相关的组件。
图-4 组件列表
任务流主要包含数据预处理、模型训练、模型评估、预测以及预测结果输出。
图-5 任务流组件
经分析球员姓名对预测薪水来说属于无效特征列,应直接删除。选择特征工程-删除列组件实现功能。
图-6 无效列删除
选择数据准备-数据修复组件对有缺省值的特征列(3Par、FTr、TOV%、TS%)进行修复,修复方法即空值填充方法选择用所在列的平均值填充。
图-7 数据修复
选择特征工程-数值化组件对非数值型特征列NBA_Country、Tm进行数值化。
图-8 非数值型数据数值化
选择输出-可视化-箱线图组件查看特征数据分布情况。
图-9 查看分布和归一化
|
分布不均,需要选择特征工程-归一化组件对除Salary以外的特征进行归一化。归一化方法选择minmaxscaler。 |
图-10 归一化
数据特征列过多,有无效或者包含特征,所以利用特征工程-PCA组件对数据集除salary之外的特征进行降维处理,保留10列有效特征。
图-11 PCA降维
对降维后的数据集利用数据准备-数据集分割组件进行分割,分割比例为0.7,即训练集0.7,测试集0.3。
图-12 数据集分割
此处采用回归-随机森林回归组件的默认参数,本案例重点在于讲述如何借助人工智能平台进行回归分析预测,参数调优的过程用户可以自己探索。
图-13 随机森林回归
对训练好的回归模型采用预测组件调用模型和测试集生成预测值predict_class,并用输出-回归模型评估组件进行模型评估。
图-14 模型预测和评估
对预测的结果采用输出-可视化-折线图组件进行可视化。
图-15 预测结果可视化
用户可以通过“立即创建”的功能,来快速创建NBA球员薪水预测的示例。
选择[人工智能平台],进入人工智能平台页面。
在[人工智能平台]左侧导航栏中选择[样例库管理/样例库]菜单项,进入样例库页面。
单击机器学习-NBA球员薪水预测样例右侧的<立即创建>按钮,选择任务流所在工程,输入任务流名称,单击<确定>按钮,保存任务流。页面会自动跳转到该工程的页面。
单击上一步创建的任务流,进入任务流页面。各个组件已经创建,且参数已经配置。用户也可以根据自己的需要,调整参数。