Inspiration

The challenge posted by Broadsign requires participants to predict impressions of an ad, which is the number of times an ad is viewed in a period of one hour, given a campaign, that consists of a list of screens to which an ad is displayed and a schedule, which is a list of hours at which the campaign should play. We have approached this challenge with machine learning techniques and displayed our results with UI.

What it does

We used stacked linear regressors as our machine learning algorithm to predict the impression of each ad. It uses input data features ScreenId, VenueId, City, NumberOfScreens, Date_hour, Date_dayofweek as training data and outputs the number of impressions. Date_hour and Date_dayof week is the hour and the day on which the ad is displayed.

How we built it

We have stacked DecisionTree regressor, Lasso Regressor, HistGradientBoostingRegressor, and all the outputs are input to the RidgeCross validation regressor. Flask was used to build a machine model and backend based on Flask, and the model was saved to the server. It then calls the function get_impression that returns out the outputs.

Challenges we ran into

We were able to build the machine model but due to time constrain, we weren't able to improve on the performance of the stacked regressor. It has also been the first time for us to build tools using REST APIs. It has been difficult to connect the frontend and backend.

Accomplishments that we're proud of

We were able to build a potentially working machine learning model and a UI that is able to conveniently display the predictions to the audience in a very short time period. This is our first time building UI in such a short time and connecting backend to frontend, as well as extracting useful features from huge data set. We had also been challenged with building complex but efficient models.

Built With

Share this project:

Updates