Me resulta un poco confuso tu motivación para esto (¿si es para una aplicación real, no sería más fácil usar un diccionario?), pero podría ser un interesante proyecto de lingüística computacional si estás intentando "redescubrir" las reglas o encontrar patrones en las irregulares.
Aunque estás obteniendo un rendimiento razonable (media AUC=0.7), creo que deberías reconsiderar cómo generas tanto las características como las etiquetas de clase.
Si observas la matriz de confusión al final de tus resultados, muchas de las ejemplos de 'f5' son clasificados incorrectamente como 'f4', 'f3', 'f2' y 'f1'. Parece extraño considerar estos como incorrectos, ¡ya que está acertando con el género (¡bien!), pero errando con la longitud del sufijo (¿realmente te importa?). Si no te importa, quizás solo tendrías que volver a codificarlos como 'f' y 'm', lo cual debería ser suficientemente fácil con buscar y reemplazar.
En cuanto a las características, parece que sería mejor tener múltiples características por instancia. Si estás probando la hipótesis de que el género está codificado en el sufijo, estaría tentado de intentar hacer que cada una de las últimas cinco letras sea una característica. Por ejemplo, en lugar de hacer:
esthé, t, f5,
esthét i f4
esthéti q f3
esthétiq u f2
esthétiqu e f1
representar los mismos datos como
t, i, q, u, e, F #esthétique
Tal vez necesites un símbolo $\emptyset$ para palabras más cortas.
Finalmente, sería interesante pasar esto por un algoritmo que te proporcione reglas. Sería genial si las reglas aprendidas coinciden con las enseñadas en clase de francés (por ejemplo, [no importa],e,u,s,e-->femenino).