https://jcollopy-tulane.github.io

UFC_LOGO.jpg

Exploring Decision Fights in the UFC

- John Collopy

  1. Motivation
  2. Further Reading
  3. ETL
  4. EDA
  5. Model Selection
  6. Conclusions

Motivation

I find Mixed Martial Arts compelling because of the unpredictability in competition. Danger is always imminent, and an exciting ending is always on the table. That being said, a large number of fights do not end in a decisive knockout or submission, and so three judges are left to decide who won the fight. The three judges are supposed to judge the fight according to the Unified Rules of Mixed Arts.

Judges assess the fight according to three criteria:

However, this language is subjective and leaves room for interpretation. Thus, perhaps unsurprisingly, fans and fighters find themselves frustrated with how judges decide fights.

The goal of this project is to use fight data to predict the results of fights and assess the impact of fighter output. In doing so, we will gain a better understand of the criteria by which judges score fights.

Further Reading

For those interested in learning more about the judging criteria, controversial decisions, or frustrated athletes, a few links are provided below.

ETL

The data used for this project comes from ufcstats.com, a website containing data from every UFC fight. This site contains multiple "layers", from which separate datasets were created. The first "layer" of this site contains links that track simple counting statistics for each fight, such as number of knockdowns, significant strikes, takedowns, and submission attempts. This data will assist in the initial EDA, as I will create charts displaying the distibutions of the winner's differentials with respect to these features. The second "layer" of this site contains more advanced metrics about each fight. This data will be merged with the first dataset in order to build a more detailed model that will predict fight results.

Important Note: This dataset contains all UFC fights up to and including the Islam Makhachev vs. Alexander Volkanovski match, which took place on October 21, 2023.

I now have the content for the site, and I will put the link containing data for each fight into a list, which will then be scraped for fight data.

Scraping the First "Layer" of Data

I now have some preliminary data for each fight. The data must be cleaned and requires some feature engineering, but since the data took some time to scrape, I will now save the dataframe as a .csv file, which will be imported later.

Scraping the Second Layer of Data (Part 1)

Scraping the Second Layer of Data (Part 2)

The second layer of data took a while to scrape, and so I will save this dataset as a .csv file as well, which will be imported later. Also, due to a number of issues scraping all of the data at once, I broke the scraping up into bits to ensure that the code ran to completion.

Unifying the Datasets

Now, it is time to unify and clean the data. Here are the variables in the initial dataframe:

I will remove unnecessary columns and remove leading and trailing whitespace in the "Fighter" column. I will also check for null values.

Now, I will convert the strings in "Kd", "Str", "Td", and "Sub" into lists of numbers. I will change non-numeric items (in this case "--") into 0's.

The data types are displayed below. Further cleaning will be done after the datasets are merged.

I will now import the second dataset. I remove unnecessary columns and remove leading and trailing whitespace from the "Fighter" column. There are duplicate rows in this dataset, which I also remove.

I now join the dataframes on the "Fighter" and "Event" columns.

Some fight data is unavailable, and so fights with unavailable data will be dropped.

Before further analysis, I drop superfluous columns.

Now, I extract all data that ended in a decision that went 3 or 5 rounds. Some early UFC decisions took place in fights that only went 1 or 2 rounds, and as all fights that take place today go 3 or 5 rounds, these old fights do not apply to future predictions.

Because both fighters' data are in the same column for "Head", "Body", "Leg", "Distance", "Clinch", and "Ground". I need to put the data in separate columns.

This part of the data cleaning is difficult. The fighter columns do not have the fighters in the same order. Because the order of fighters is random in the second "Fighter" column, I will use this column to determine "Fighter_1" and "Fighter_2" data regarding. If the columns are the same, then "Fighter_1" will take on the first number in each column. If not, then "Fighter_1" will take on the second value.

Now, I remove the columns from which the data was extracted.

Now, I extract data from the "Head", "Body", "Leg", "Distance", "Clinch", and "Ground" columns.

Now, I extract differentials for Fighter_1, which will be used to build the model.

Now, I create a column indicating if "Fighter_1" won the fight.

Before cleaning the data, it is time to extract the data that will be used for analysis. The fights that will be examined are fights that ended in a decision. Let's check all of the different ways fights have ended.

Decision fights are labelled as "U-DEC", "S-DEC", or "M-DEC". These fights are now extracted and placed in a new dataframe.

EDA

For the EDA, I will modify the original dataset.

In order to continue, I have to remove the non-numeric values.

A cursory analysis of fights that ended in a decision can offer insight into what predicts the winner of such a fight. A good place to start is with Unanimous Decisions. Perhaps by looking at fights where every judge agreed on choosing the winner, it will become obvious as to what a fighter must do to win a fight. The chart below illustrates the distribution in the winning fighter's significant strike differential. As seen in the chart, the distribution is right-skewed with a mean of 22.65 and 26.29. Hence, fighters who won convincingly usually landed more significant strikes than their opponent; however, the chart does show that a considerable number of fighters who won unanimous decisions lost the striking battle.

The chart below shows the distribution of the winning fighter's takedown differential. The distribution is slightly right-skewed with a mean of 1.55 and standard deviation of 2.98. The chart suggests that winners of a unanimous decision are more likely to win the takedown battle, but, as with significant strikes, quite a few winning fighters lost the takedown battle.

Split Decision Analysis

Split Decisions occur when one of the three judges scores the declared winner of the fight as the loser. As there is no consensus winner among the judges, these fights are inherently controversial. Thus, it is to be expected that the mean strike differential is to be smaller than those of a Unanimous Decision. The chart below bears this out. The distribution has little-to-no skew with a mean of 4.46 and 20.38 standard deviation. Additionally, many winners of split decisions actually lost the striking battle.

In a similar fashion to the chart above, the distribution of the takedown differential has almost no skew. The mean is 0.23, and the standard deviation is 2.63. These two charts suggest that perhaps strike differential and takedown differential are not excellent predictors for the winner of a split decision. Perhaps more advanced striking and takedown data can assist in painting a higher-resolution picture of these fights.

What can be gleaned from this cursory analysis? In split decisions, it appears that Takedown Differential and Significant Strikes Differential will not be significant predictors in the model. It appears that some more "advanced" metrics will be necessary to include when building out the model.

Model Selection

The goal of the model is to accurately predict fights and offer insight about the influence of features. As such, a logistic regression model has been chosen.

Model for All Types of Fights

The goal of the first model is to predict the result of a fight without knowing anything about the type of decision. This model will provide a broad idea of what features are important when predicting any fight.

Checking for Multicollinearity

Before building the model, it is important to ensure that there is not multicollinearity within the data. First, a correlation matrix will be analyzed.

Head Strikes Differential and Distance Strikes Differential are highly correlated, so Distance Strikes Differential is removed from the data used for modeling. Now, VIF scores are checked.

The VIF scores are all low, and so multicollinearity is not a concern. Now, the model can be built.

As seen in the table above, 8 of the 10 predictors used are significant in the model, with Submission Attempts Differential and Clinch Strikes Differential being insignificant. Head Strikes Differential and Control Time Differential are the predictors with the highest coefficients in the model. Now, let's see the accuracy score of the model.

Below, an amended model is made by making categorical variables from the insignificant predictors. If the fighter output in the insignificant features is greater than 95% (an arbitrarily chosen percentage) of the observations in that column, then that observation is changed to a 1. If the observation does not meet this criteria, it is changed to a 0.

The same insignificatant predictors remain. The accuracy is still the same. I will now remove the remaining insignificant predictors.

This model has the same accuracy as all of the other models, but it only contains significant predictors. As such, this model would be chosen.

As said, the model above is useful when only the fighter output is known. However, it would be useful to build a model on a subset of the data used for the model above. The subset will be based on the type of decision. In creating this model, more insights can be gained about the impact of features once more is known about the interpretation of the competition.

Unanimous Decision Model

First, a model will be created on fights that were scored a unanimous decision.

In the model above, Submission Attempts Differential and Clinch Strikes Differential are the only insignificant predictors. Head Strikes Differential and Control Time Differential are still the most impactful features by a considerable margin.

Below, an amended model is made by creating categorical variables in the same manner as the previos model.

None of the insignificant predictors become significant.

The accuracy score in the new model actually improves using the new model. Now, I will try a new model that does not have any insignificant predictors.

The accuracy remains the same, but the model only contains significant

Split Decision Model

The table indicates that the Pseudo R-Squared Value is much lower than the above models. Only 3 predictors are significant in the model above: Head Strikes Differential, Clinch Strikes Differential, and Control Time Differential.

An accuracy score of 0.61 is lower than desired, as the goal score was 0.67 or higher (as 2 of the 3 judges agree on the winner). To address this, the insignificant predictors are adjusted as they were in the other models.

The accuracy score increases when the model is adjusted. What if all insignificant predictors are simply dropped?

Although the accuracy in the model is slightly lower than the model before, it only contains significant predictors, and so this is the model that would be selected.

Final Models

Below are the best models as associated accuracy scores.

Model for All Fights

Model for Unanimous Decisions

Model for Split Decisions

Conclusions

Takeaways from the Logistic Regression Models

Based on the first model, which does not take into account the type of outcome, one can determine that Significant Strike Differential, Takedown Differential, Strikes to the Head Differential, Strikes to the Body Differential, Leg Kicks Differential, Control Time Differential, Ground Strikes Differential, and Knockdown Differential are the most important features when predicting the winner of a fight, with Strikes to the Head Differential and Control Time Differential having the largest impact on the judges' scorecards. This is not terribly surprising, as these two features are perhaps the best indicators of effective striking and effective grappling, which are the two most important standards by which judges are supposed to score fights. The next two important features are Body Strike Differential and Leg Kicks Differential, respectively, which are also indicators of effective striking. However, the main idea is that, since there are multiple significant predictors, a fighter can find success in a fight by gaining advantages in a variety of areas. That being said, certain parts of their output, namely Strikes to the Head Differential and Control Time Differential, should be prioritized.

The Unanimous Decision Model offers similar insights. When all judges agree on a winner, the model suggests that there are multiple different areas in the fight that offer significant insight on who won. Interestingly, Knockdown Differential is not a significant predictor when modeling on this subset of the data. All this being said, Strikes to the Head Differential and Control Time Differential are still the most impactful predictors.

What is perhaps most surprising are the takeaways from the Split Decision Model. Based on the EDA, there were doubts as to whether there would be any significant predictors from the features in the data. While the number of significant predictors in the model are lower than the other two models, Strikes to the Head Differential and Control Time Differential were significant and still have the largest coefficients. This would indicate that in a close fight, the features most strongly related to the most important judging criterion play the most significant role in a judge's mind when discerning the winner in a close fight. This sort of information would be particularly useful to fighters and coaches, as if the fight is close and the fight is coming to an end, a strategy could be formed so as to gain advantages in the competition.