I'm a bit confused about how to build any kind of ML model with only categorical data.
I have a dataset of training completed by each person. The dataset has about 25 columns (names of the training) and 3500+ rows (training that was completed or not completed) with each row indexed to a specific person. Since the training is categorical, I already hot-encoded each row/column of the dataset with each row still indexed to a specific person. The last column is the total number of incidents a person has been involved in (which right now is either 0 or 1 total incidents but could be more in the future).
Is there a way to build some type of multivariate or multiple linear regression predictive/machine learning model to predict things like which person is more likely to be involved in an incident based upon the training that they have or have not taken - or which trainings are most effective based upon a number of incidents, etc.? Also, is there a way to perhaps assign a probability to each person based upon the training they took (or not taken) and the total number of incidents they were involved or not involved in? Again, I'm not sure what to do because I am trying to make predictions about categorical data from other categorical data.
Here is an example of my data frame (each row is indexed to a specific person instead of the row index number):
import pandas as pd
data = {'Training1':[1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1],
'Training2':[0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1],
'Training3':[1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0],
'Training4':[1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1],
'Training5':[1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1],
'Training6':[1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1],
'Training7':[1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0],
'Training8':[1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1],
'Training9':[1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1],
'Training10':[1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1],
'Training11':[1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0],
'Training12':[1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1],
'Training13':[1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1],
'Training14':[1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1],
'Training15':[1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1],
'Training16':[1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0],
'Training17':[1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1],
'Training18':[1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1],
'Training19':[1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1],
'Training20':[1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0],
'Training21':[1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1],
'Training22':[1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1],
'Training23':[1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0],
'Training24':[1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1],
'Training25':[1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1],
'Total_Incidents': [1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1]}
df = pd.DataFrame(data)