Le dataset représente des caractéristiques sur les pages, colonnes et lignes de la bible Avila provenant d’images. Chaque ligne du dataset représente les caractéristiques d’une ligne écrite, de la colonne qui la contient, et de la page qui la contient.
Le but de la prédiction sur ces données, est de pouvoir prédire quel copiste a écrit une ligne donnée, en fonction des différents patterns de ce texte. La Bible ayant été écrite par 12 copistes, assimilés à des lettres, le dataset dispose de 12 classes de cible. Il s’agit bien ici d’appliquer un algorithme de classification, pour associer des patterns d'écritures à un des copistes ayant écrit la bible.
Un travail de prédiction a donc été effectué pour fournir la prédiction, au travers de différents tests, de différents modèles et leur configuration.
Le modèle de prediction retenu a été sauvegardé, et implémenter dans un rendu sous forme d'api Flask.
Pour démarrer l'api Flask et être en mesure de l'utiliser pour performer des predictions avec le modèle, il suffit de suivre les étapes suivantes:
D'abord, il faut clone le repository:
git clone https://github.com/medartus/Avila-Analysis
Ensuite, dans le dossier du projet, installer les dependances python en executant cette commande :
pip install -r requirements.txt
Enfin, toujours dans le dossier du projet, lancer l'API avec la commande suivante:
python api/api.py
Une fois l'API demarrée, pour l'utiliser il suffit de faire une requête GET
à l'endpoint /predict
, en y passant en paramètres les variables de votre prediction selon le schéma suivant:
Paramètre dans la requête | Variable de prédiction associée |
---|---|
F0 | intercolumnar distance |
F1 | upper margin |
F2 | lower margin |
F3 | exploitation |
F4 | row number |
F5 | modular ratio |
F6 | interlinear spacing |
F7 | weight |
F8 | peak number |
F9 | modular ratio/ interlinear spacing |
Ce projet est une application intéressante de machine learning. Car bien qu'il soit difficile à l'oeil humain de différencier les auteurs d'une certaine habitude d'écriture et calligraphie, le machine learning y arrive particulièrement bien, du moins avec le dataset Avila.
L'exploration des données, leur visualisation et leur compréhension à été une étape importante dans l'élaboration du modèle. Cela nous a permis de comprendre en profondeur chaque variable de façon concrète, et par la suite de créer de l'information utile pour le modèle.
En plus de ce feature engineering, il nous a suffit de tester plusieurs modèles, d'effectuer des recherches d'hyper-paramètres optimaux, et le résultat retenu est d'une précision très satisfaisante.