我的任务利用13到16年的NBA比赛统计数据,去预测17年的每场NBA比赛。数据是从http://www.basketball-reference.com/这个网站获得的。前期参考了https://www.shiyanlou.com/courses/782/labs/2647/document这里的分析与实现方法。这个实验楼里实现用了LogisticRegression。现在我想对数据做一些预处理,并且用其他分类方法做决策,比较着看效果。Michael J. Lopez的《Building an NCAA men’s basketball predictive model and quantifying its success》这篇文章里写了几个对预测有帮助的特征。并且总结了下他们实现方法的局限性。
对于数据预处理
特征选择
去掉方差小的特征
用一个阈值来去除方差小的变量是一种最基础最方便的方法,比如某个特征在所有样本中都是同一个值,那么这个特征没有什么信息量,可以去掉。
sklearn.feature_selection.SelectKBest
SelectKBest removes all but the k highest scoring features
分数评价标准对于分类有三种,分别是
chi2, f_classif, mutual_info_classif
- chi2 计算每个非负特征和类之间的卡方统计。
- f_classif 计算所提供样本方差的F统计值。
- mutual_info_classif 估计离散目标变量的互信息。