We were given the problem solution of predicting different scenarios and game plays in a basketball game from the dataset given in the Hackathon. The model should extract data features, identify scenarios and label it according to the model we are choosing.
What it does
The dataset we chose was cross half-court predicting where we predict if a user has crossed the half court maintaining the possession of the ball.
How we built it
We used 2 approaches.
We created a deep neural network from scratch using Tensorflow and Keras. The neural network that we built was with 3 convolutional layers with relu followed by 2 fully connected dense layers with L2 regularization. We found Adam Optimizer giving us the best results with Categorical Crossentropy as our Loss function. We found this working efficiently corresponding to when we were using the pre trained neural network.
Pre-trained Neural Network: We used ResNet50 as a pre-trained model with 2 additional trainable files.
Challenges we ran into
- Overfitting : Dropouts, L2 regularization
- Underfitting : Add more layers
- Class imbalance : Class weights, equal sampling
- Everything else: Stackoverflow
Accomplishments that we're proud of
Built a model with 96.2% training accuracy and 92.7% testing accuracy.
What we learned
- Building a custom neural network from scratch
- Tuning the Neural Network to improve accuracy accounting for imbalanced labeled data
- To reduce overfitting using regularization and dropouts
What's next for Cross-Half Court Identifier
- Improving accuracy by adding more layers
- Extending to Multi-class classifiers using LSTM