I have a dataset of shape (55314,23). The target variable is league_rank. There are exactly 3951 leagues in this dataset, with each club having a ranking from 1 to 14. The variable is discrete, and all values from 1 to 14 compries 7.14% of the dataset.
The explanatory variables are:
'cohort_season', 'avg_age_top_11_players', 'avg_stars_top_11_players', 'avg_stars_top_14_players', 'avg_training_factor_top_11_players', 'days_active_last_28_days', 'league_match_watched_count_last_28_days', 'session_count_last_28_days', 'playtime_last_28_days', 'registration_country', 'registration_platform_specific', 'league_match_won_count_last_28_days', 'training_count_last_28_days', 'global_competition_level', 'tokens_spent_last_28_days', 'tokens_stash', 'rests_stash', 'morale_boosters_stash'
I have tried plotting the relationship and line of best fit between numeric and target variable.
I end up with plots like this for example:
Based on these plots it seems that predicting the average of league_rank would do a better job, and indeed it does, for Linear Regression, Ridge Regression and Random Forest. There seems to be nothing that the model can learn from this data. What is the workaround for this, if any?