Lors de la modélisation d'un processus à l'aide de ML (machine learning), l'une des tâches les plus laborieuses et les plus exigeantes consiste à créer un tableau de données suffisamment volumineux pour créer un modèle avec des caractéristiques de haute qualité. Et s'il n'y a pas assez de données ?
Dans le cadre de l'une des tâches de création d'un modèle mathématique qui estime la probabilité de manipulation des états financiers fournis par le client à la banque, le problème des données insuffisantes pour former le modèle avec un enseignant a été résolu. Le reporting financier trimestriel (FO) a été choisi comme objet du tableau. Le tableau se composait de plusieurs milliers d'objets, et c'était suffisant pour notre tâche. Le problème est apparu lors de la formation des valeurs de la variable cible. Les analystes n'ont identifié que 20 cas avérés de manipulation de l'information financière. C'est un nombre extrêmement petit pour un tableau de plusieurs milliers d'objets. Si le tableau est divisé de manière aléatoire, dans notre cas par 5 fois, lors de l'utilisation de la fonction de validation croisée, il y a une forte probabilité queque l'un des plis sera sans objets avec des cas avérés de manipulation FO. Dans ce cas, la fonctionnalité de validation croisée sera inutile et le processus d'apprentissage du modèle se terminera par une erreur.
A première vue, il existe une solution à ce problème, qui consiste à utiliser la méthode du « sous-échantillonnage », dont l'essence est de dupliquer dans le tableau les objets pour lesquels, dans notre cas, les faits de manipulation FD ont été prouvés. Il s'est avéré que l'utilisation de la méthode de sous-échantillonnage a résolu le problème de la validation croisée, mais il n'a pas été possible de créer un modèle avec des métriques de qualité acceptables. Il a été conclu que l'utilisation de la méthode du « sous-échantillonnage » n'est pas recommandée dans le cas où le nombre d'objets de la classe minoritaire et de la classe majoritaire diffère de plusieurs ordres de grandeur. Dans notre cas, la méthode duplicate crée un grand nombre d'objets dans le tableau, qui sont des copies complètes de leur parent. Dans ce cas, le tableau perd son unicité et l'apprentissage sur un tel échantillon conduit à un surajustement du modèle.La preuve de ce fait est démontrée par les métriques de qualité du modèle sur l'échantillon d'essai.
ROC_AUC :
ROC_AUC, 0,55 . ROC_AUC , , .
. , , .
, «» « ». , , 20% . , 25% , , . . , . 8 – . T/SQL :
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY “PARAMETER”) OVER (PARTITION BY “CLIENT”)
8 , 8 .
():
= ( – _Me/_Me) *100;
= ( – _Me/ _Me) *100;
= | - |;
90% , , . 20 330. , .
ROC_AUC :
ROC_AUC, 0,84 . ROC_AUC , , .
Pour atteindre un certain équilibre des classes minoritaires et majoritaires dans l'échantillon, vous pouvez utiliser les algorithmes SMOTE ou ASMO de la bibliothèque imblearn.
Les deux algorithmes recherchent les « voisins les plus proches ». Il est conseillé d'utiliser une telle méthode lorsqu'il existe une grande certitude que dans une classe minoritaire, tous les objets dans leurs paramètres sont des représentants de cette classe. Dans notre cas, les objets sont tombés dans la classe minoritaire sur la base des jugements des analystes, et dans le processus d'équilibrage de l'échantillon basé sur l'algorithme développé, des objets ont été trouvés qui, en termes de paramètres, se sont avérés être les plus importants. représentants pour les affecter à la classe minoritaire.