﻿ kaggle 机器学习代写 NBA final project - Python代写, 北美代写, 机器学习代写

# kaggle 机器学习代写 NBA final project

2019-07-29 15:19 星期一 所属： Python代写 浏览：119

kaggle 机器学习代写 Groups will formulate a hypotheses, collect data, use techniques taught in class to study the data patterns or to predict future outcomes.

Description:

Groups will formulate a hypotheses, collect data, use techniques taught in class to study the data patterns or to predict future outcomes. Students are required to submit their code and present the project in class.

Requirements:

• The collected data must have 10,000 rows at minimum
• Allthe machine learning algorithms taught in the class must be used

Notes:

• 不要用像Irisdata、credit card default data或IMDB movie rating这种满大街的datasets,用kaggle 的NBA数据集。–nba：
https://www.kaggle.com/pablote/nba-enhanced-stats
https://www.kaggle.com/drgilermo/nba-players-stats#Seasons_Stats.csvnba：
• Code最后要在Anacoda的环境下运行
• Code注释用英文
• Project要fun和innovative,不能太boring（老师要求的）
• Algo不仅限于教过的，但教过的一定都要用到
• PPT不用做，但发一个word文档告诉我这份project的内容，包括：
• 每部分代码在做什么
• 各个algo的过程和结果，各个algo结果的区别，用不同的algo分别可能会遇到什么问题，最终哪个algo的结果更优秀，等等

• Set up

Conda environment: python=3.6, numpy, jupyter, sci-kit learn, pandas, matplotlib(if needed)

• 数据集

Collected from: https://www.kaggle.com/drgilermo/nba-players-stats

1. Age: 年龄（which I think is the most importance）
2. Year: 当前年份
3. 物理数据：

height: height

weight: weight

1. Position:

1. Basic data feature：

G: games played

GS: games started首发场数

MP: Minutes Played

FG: Field Goals

FGA: Field Goal Attempts

3P: 3-Point Field Goals

3PA：3-Point Field Goal Attempts

2P：2-Point Field Goals

2PA：2-Point Field Goal Attempts

FT：Free Throws

FTA：Free Throw Attempts

ORB：Offensive Rebounds

DRB：Defensive Rebounds

TRB：Total Rebounds

AST: Assists

STL: Steals

BLK：Blocks

TOV: Turnovers

PF: Turnovers

PTS: Points

1. High order data feature:

PER: Player Efficiency Rating

TS%:True Shooting %

TRB%: Total Rebound Percentage

AST%: Assist Percentage

STL%: Steal Percentage

BLK%: Block Percentage

TOV%: turnover Percentage

USG%: Usage Percentage

WS/48: Win Shares Per 48 Minutes

year_left: 从数据中的那一年计算，球员的职业生涯还有多少年

• 实验

Regression algos：

linear regression, Lasso, Ridge,

RANSAC(on linear regression),

decision tree regressor,

support vector regressor(rbf kernel, linear kernel, polynomial kernel),

multilayer perceptron regressor(MLP regressor)

Linear regression：没什么

Lasso:

Lasso 有个hyperparameter: alpha，这个alpha我们通过在训练集上用5-fold cross validation找到最优值，就是计算每个alpha在5-fold cross validation上的mean squared error分数，选分数最小的那个。

Lasso 的object function不是convex，不可以直接解方程得到coefficient的closed-form solution，所以只能用迭代优化的思想，由于数据集的原因，迭代很难收敛，因此Lasso会跑的相对久一点，解决方法可以通过调低learning rate，或者调低相邻两次iteration的loss变化的threshhold，使得algo对于convergence的tolerance变高。

Ridge:

Ridge也有一个alpha要调，采用跟lasso一样的调优方法。Ridge的loss是convex的，可以直接求closed form solution

RANSAC:

RANSAC就是用迭代的思想，每次拿一下data points给algo fit，然后判断这些points 是不是inlier，从而提高模型的鲁棒性。我们在linear regression上应用RANSAC。RANSAC的有一个可以调的hyperparameter就是inlier占所有数据集的比例。我们采用和lasso一样的思想，用5-fold CV找到最优的比例。

Decision tree regressor:

Decision tree regressor 可以调节的hyperparameter是max tree depth，决策树的最大深度，还是采用5-fold CV的思想调参

Rbf-kernel svr:

Linear-kernel svr:

Linear-kernel: https://en.wikipedia.org/wiki/Kernel_method

Poly-kernel svr:

Polynomial-kernel: https://en.wikipedia.org/wiki/Polynomial_kernel

MLP regressor:没什么

 Raw data Scaled data Linear regression 10.5552 10.5552 Lasso 10.6073 10.5824 Ridge 10.5566 10.5537 RANSAC 10.7147 10.7241 Decision tree regressor 10.8330 10.8330 Rbf-SVR 18.6447 9.6757 Linear-SVR 69.2191 10.9789 Poly-SVR 1.0166*10^22 10.9278 MLP regressor 12.4102 10.4888

1. 预想中lasso和ridge应该能解决linear regression 会over-fitting的问题，但是在这个数据集中，经过hyperparameter finetuning 的lasso和ridge比linear regression的效果还差。
2. Linear regression，Lasso, ridge，RANSAC这些linear的algorithm在这个数据集上的表现都不是很好，说明data point的分布不是线性可分割的
3. 三个kernelizedSVR在raw data上的表现不是很好，并且需要运行很长的时间，但是standardization解决了这个问题，standardization对三个kernelized SVR的性能提升了很多，特别是rbf-kernelized SVR，表现也超过了前面所有的线性algorithm，说明kernelize可以解决数据线性不可分割的问题
4. Standardization对于多个algo都有或多或少的提升，说明这个提高算法性能的一个必要手段
5. 虽然MLP regressor的实验结果不是最好，但是我认为这并不是MLP性能上的不足，因为实验结果显示，MLP在training set上的mean squared error低至4.5752，远超其他的algo，这说明MLP，或者说deep learning 拟合数据的能力很强，但是也很容易遇到over fitting。

1. physical data: Age, weight, height
2. physical data and position ：Age, weight, height, Pos_C, Pos_PF, Pos_SF, Pos_SG, Pos_PG
3. basic data: Age, G, GS, MP, FG, FGA, 3P, 3PA, 2P, 2PA, FT, FTA, ORB, DRB, TRB, AST, STL, BLK, TOV, PTS
4. high order data: Age, PER, TS%, TRB%, AST%, STL%, BLK%, TOV%, USG%, WS/48
5. basic + high order: Age, G, GS, MP, FG, FGA, 3P, 3PA, 2P, 2PA, FT, FTA, ORB, DRB, TRB, AST, STL, BLK, TOV, PTS, TS%, TRB%, AST%, STL%, BLK%, TOV%, USG%, WS/48
6. basic + position: Age, G, GS, MP, FG, FGA, 3P, 3PA, 2P, 2PA, FT, FTA, ORB, DRB, TRB, AST, STL, BLK, TOV, PTS, Pos_C, Pos_PF, Pos_SF, Pos_SG, Pos_PG
7. high order + position: Age, TS%, TRB%, AST%, STL%, BLK%, TOV%, USG%, WS/48, Pos_C, Pos_PF, Pos_SF, Pos_SG, Pos_PG

 Physical only 16.9202 Physical+position 15.9974 Basic only 18.333 High order only 14.8018 Basic+high order 18.6215 Basic+position 18.2678 High order+position 14.4444