Dans le cadre d’un processus formel de traitement des données (…)

La première étape consiste à importer ces données dont on possède déjà grâce à un formulaire rempli par les étudiants. Ces données seront formattées sous fichier CSV et lues en utilisant Python comme language de programmation.

Sur ce projet, nous allons faire abstraction de toutes librairies ou dépendances externes et nous allons nous pencher uniquement sur les librairies natives que le language fournit de base. La seule librairie externe dont nous allons faire usage est snakemd qui va nous permettre de générer une documentation en markdown sur la base des données et référencer toutes informations pertinentes. Et pour éviter les explications excessives, nous n’allons pas s’arrêter sur chaque ligne de code en partant de l’hypothèse que vous avez déjà acquis les bases du language.

On commence par importer nos données :

with open(file="data.csv", mode="r", encoding="utf-8") as file:
    file = csv.reader(file)
    headers = next(file)

Puisque notre base de donnée est un fichier csv, Python nous donne à disposition une librairie pour manipuler (lire, écrire) ce type d’extension. Celle-ci est enveloppé de la méthode reader() pour qu’on parvienne à itérer à travers les lignes du fichier. Par convention la première ligne constitue les en-têtes de notre base de donnée, nous allons la retirer de la variable file qui constitue les données grâce à next(), et nous allons l’isoler en la stockant dans la variable headers.

La raison pour laquelle on l’a isolé c’est pour créer des variables en chaîne de caractère et éviter à tout prix d’indexer les propriétés de cette sorte headers.index(”Filière d’étude”) puisque ça nous posera des soucis pour récupérer les valeurs (…). De cette sorte on pourrait récupérer facilement dans notre exemple la position de l’en-tête “Filière d’étude” comme ceci : headers.index(”FD”)

Il est sage de ne pas prendre en considération l’année d’étude car en réalité c’est une constante et la valeur ne change jamais de sorte à ce que tout les étudiants sont tous en 3ème année et la date universitaire reste la même : 2024/2025. Statistiquement, l’échantillon étudié est …

Pour respecter la confidentialité des utilisateurs, il se doit de supprimer toutes informations personnelles relatives à l’utilisateur à savoir son adresse mail ou son nom/prénom. Ce scénario sécurise la vie privée et respecte les choix de l’utilisateur.

Si on essaye de comparer strictement “Fes” et “Fès”, la valeur comparative est fausse. Pour remédier à ce soucis, il faudra appeler la méthode *unicodedata.normalize(form, unistr)* de la librairie standard unicodedata permettant d’instaurer la forme normale d’une chaîne de caractère unicode. Il faudra ensuite spécifier comme premier paramètre la forme de normalisation, dans notre cas ça sera NFKD qui, par décomposition, traitera les caractères unicodes par leurs équivalents, et comme deuxième paramètre la chaîne de caractère en question à normaliser, en l’occurence “Fès”. Le résultat est trivial, c’est : “Fes”

Un autre problème lors la saisie de la ville d’origine ou il se peut que l’utilisateur ai commit une faute de frappe par inattention ou pour quelconque raison. Pour remédier à ce soucis, nous devrons implémenter intuitivement une logique algorithmique permettant de faire correspondre approximativement deux chaînes de caractères distinctes. Sur la base de mes connaissances, il en existe deux : Levenshtein et le Fuzzy Searching.

La régression linéaire est utilisée pour établir une relation entre les variables indépendantes x et les variables dépendantes y. Elle peut être représentée par l'équation de la droite : $y = ax + b$

$X = \{ x_1, x_2, ..., x_n \}$ sont les indices des valeurs connues et $Y = \{ y_1, y_2, ..., y_n \}$ qui sont indices qui valeurs correspondantes.

a est la pente et b est l'ordonnée à l'origine. Les deux coefficients sont calculés à l'aide des formules suivantes :

a = $\frac{n \sum x_i y_i - \sum x_i \sum y_i}{n \sum x_i^2 - (\sum x_i)^2}$ et $b = \frac{\sum_{i=1}^{n} y_i - a \sum_{i=1}^{n} x_i}{n}$

Ces formules permettent de déterminer la droite qui minimise l'erreur quadratique entre les points de données et la droite.

Une transformation est nécessaire par rapport à l’option choisie en BAC de l’étudiant qui deviendra “Branche BAC”, car les données sont inconsistantes ou la plupart des étudiants n’ont pas préciser leur option de spécialiser mais plutôt leur branche.