J'ai un problème de classification binaire, que je veux résoudre avec un RandomForestClassifier. Ma colonne cible est "successful", qui vaut soit 0 soit 1. Je veux étudier les données et voir à quoi elles ressemblent. Pour cela, j'ai essayé de faire des graphiques de comptage par catégorie. Mais cela ne dit pas combien en pourcentage du total sont "réussis" (c'est-à-dire réussis == 1).
Comment puis-je modifier le graphique suivant, de sorte que ces sous-points affichent le pourcentage de (succès == 1) du total de tous les messages ? (Disons que dans la catégorie Jour de la semaine, le jour 'Samedi', j'ai 10 points de données, 7 d'entre eux sont réussis ('réussi' == 1), donc je veux avoir une barre avec des points à ce jour à 0,7.
Voici le graphique actuel (chiffres :-/) :
Et voici une partie de mon cadre de données :
Et voici le code utilisé pour générer le graphique :
# Plot
sns.set(style="darkgrid")
x_vals = [['page_name', 'weekday'],['type', 'industry']]
subtitles = [['by Page', 'by Weekday'],['by Content Type', 'by Industry']]
fig, ax = plt.subplots(2,2, figsize=(15,10))
#jitter = [[False, 1], [0.5, 0.2]]
for j in range(len(ax)):
for i in range(len(ax[j])):
ax[j][i].tick_params(labelsize=15)
ax[j][i].set_xlabel('label', fontsize=17, position=(.5,20))
if (j == 0) :
ax[j][i].tick_params(axis="x", rotation=50)
ax[j][i].set_ylabel('label', fontsize=17)
ax[j][i] = sns.countplot(x=x_vals[j][i], hue="successful", data=mainDf, ax=ax[j][i])
for j in range(len(ax)):
for i in range(len(ax[j])):
ax[j][i].set_xlabel('', fontsize=17)
ax[j][i].set_ylabel('count', fontsize=17)
ax[j][i].set_title(subtitles[j][i], fontsize=18)
fig.suptitle('Success Count by Category', position=(.5,1.05), fontsize=20)
fig.tight_layout()
fig.show()
PS : Veuillez noter que j'utilise Seaborn. La solution devrait être aussi avec Seaborn, si possible. Merci !