Here we are with the third rendition of Steve Machine’s very own predictions for the 2019 Major League Soccer season. After week one there were some changes in the rankings and week two has seen even more drastic changes to the predicted points for each team this season. Using our dataset that includes some non-traditional variables such as coaching change, designated player count and salaries, total team salary, and number of homegrown players, Steve spat out some interesting predictions. We will go over the current predictions for this week, some of the big changes, and then break down what exactly is inside the model that we used (more machine learning stuff!).

Oh and Steve wanted me to remind you that these predictions are just for fun and to see what relationships exist between seemingly unrelated datapoints. If he were to actually predict the season standings he would choose a variety of different pieces of data. Enjoy!

Starting with a Bang - Western Conference Prediction

Here is our table and we have a newcomer in the top three! Real Salt Lake jumps up above FC Dallas at 52 points, and it should be noted that Seattle has moved into a tie with Los Angeles FC for first place, only losing out on hundredths of a point. Sporting Kansas City and Portland drop down four points to 44 points, which is a pretty substantial drop, and creating a bit of a free-for-all for the seven playoff spots. The Whitecaps have no change in point projections but have climbed into the sixth seed somehow. Overall some interesting changes.

Western Conference Team Points Team Points Los Angeles FC 55 Seattle Sounders FC 55 Real Salt Lake 52 FC Dallas 50 LA Galaxy 49 Vancouver Whitecaps FC 48 Portland Timbers 44 Sporting Kansas City 44 Minnesota United 41 Houston Dynamo 40 Colorado Rapids 39 San Jose Earthquakes 38

The East?

Atlanta. What might have been? A drop of seven points is intense, and the upward movement of Toronto has Atlanta slide out of the top spot and down into the second seed for the first time. Orlando experienced a rather precipitous slide down to the bottom of the east, also losing seven points. Cincinnati, Philadelphia and Orlando’s respective drops have bumped Columbus out of the bottom spot, even if they did lose a point in their projected total. The east is VERY close from top to bottom as only 14 points separate the number one seed and the twelfth team.

Eastern Conference Team Points Team Points Toronto FC 54 Atlanta United 53 New York City FC 52 New York Red Bulls 51 New England Revolution 47 Montreal Impact 45 D.C. United 44 Chicago Fire 43 Columbus Crew SC 42 FC Cincinnati 42 Philadelphia Union 42 Orlando City SC 40

Pieces of the Multi-Layer Projectron

There are lots of pieces underneath the covers inside of our model here and I wanted to go into what some of those pieces are and how they impact how the model works. In this article we will cover one important piece: the activation function.

Activation functions calculate a sum of its input, weights it, then adds in a bias and finally decides whether the neuron/node should be “activated” or not. So we have all of the data going into the node (one piece of one hidden layer) - the input, and then we have weights that are added to the inputs, and then any bias (added to help the neural network learn patterns).

The activation function for our multi-layer projectron (MLP) is what is called the hyperbolic tangent (tanh) function. The tanh function is the choice for our model because of the same reason that we normalize our data - because it is far more likely to produce outputs in one layer (that are the inputs to the next layer as you may remember) that are close to zero. Below is an image of what the tanh function looks like when graphed. You can see that it is symmetric about the origin. That means that it is even on both sides of the very center of the graph. This is helpful to us because it alleviates much of the volatility from large ranges in our input data from top to bottom. Scaling or normalizing data helps to squish the data down so that there is less dramatic impact with our salaries (varying in the millions), and our classifiers like coaching change (yes or no - very little variance) with our model and in the same way, the tanh function contributes by scaling the output along the -1 to 1 range.

All that really means is that the function makes it easier for the neuron to know whether to activate or not. Using our function we look to see whether the result is close to -1, 1, or 0. This determines whether it “fires” or not. Strong negative impact of the inputs is important to note and because of this I chose the tanh function instead of something like ReLU that turns to zero (and thus does not “fire”) far too often for my taste, especially when testing this model.

I hope that explains a little bit more about what is going on inside a neural network. If it wasn’t super clear I will try to clean it up and explain some more next week as we dive into another piece inside our neural network and its inner workings.

Oh and I almost forgot - below are the Supporters’ Shield standings for this week (which double as my own sort of power rankings).