La baisse de la mesure de cohérence des données compare les transactions en cours d'exécution avec les modèles de transactions dans les données d'apprentissage afin d'identifier les incohérences.
Détails de l'indicateur
La baisse de la cohérence des données est une mesure d'évaluation de la dérive qui peut aider à déterminer la qualité de la prédiction des résultats de votre modèle au fil du temps.
Portée
La baisse de la mesure de cohérence des données n'évalue que les modèles d'apprentissage automatique.
- Types d'actifs d'IA : Modèles d'apprentissage automatique
- Type de problème d'apprentissage automatique :
- Classification binaire
- Classification multiclasse
Scores et valeurs
La baisse du score de cohérence des données indique si les transactions sont incohérentes en violant les modèles de données d'apprentissage.
Plage de valeurs : 0.0-1.0
Processus d'évaluation
Chaque transaction est analysée pour détecter les incohérences de données en comparant les transactions d'exécution avec les modèles des transactions dans les données d'apprentissage. Si une transaction enfreint un ou plusieurs des modèles de données de formation, elle est identifiée comme incohérente. Pour calculer la baisse de cohérence des données, le nombre total de transactions est divisé par le nombre de transactions identifiées comme incohérentes. Par exemple, si 10 transactions sont identifiées comme incohérentes sur un ensemble de 100 transactions, alors la baisse de cohérence des données est de 10 %.
Pour identifier les incohérences de données, un schéma est généré lorsque vous configurez la détection de dérive en créant un fichier de règles de dérive ( constraints.json
) pour spécifier les règles que vos données d'entrée doivent respecter. Le schéma est utilisé pour évaluer la dérive de vos données en identifiant les valeurs aberrantes qui ne correspondent pas aux contraintes spécifiées. Le schéma est spécifié sous la forme d'un objet JSON avec des tableaux columns
et constraints
qui décrivent les données d'apprentissage comme indiqué dans l'exemple suivant :
{
"columns": [
{
"name": "CheckingStatus",
"dtype": "categorical",
"count": 5000,
"sparse": false,
"skip_learning": false
},
"constraints": [
{
"name": "categorical_distribution_constraint",
"id": "f0476d40-d7df-4095-9be5-82564511432c",
"kind": "single_column",
"columns": [
"CheckingStatus"
],
"content": {
"frequency_distribution": {
"0_to_200": 1304,
"greater_200": 305,
"less_0": 1398,
"no_checking": 1993
}
}
}
Les valeurs sont spécifiées pour les clés name
, dtype
, count
, sparse
et skip_learning
pour décrire une colonne.
Les clés « name
» et « dtype
» décrivent l'étiquette et le type de données d'une colonne. Les valeurs suivantes spécifiées avec la clé d' dtype
, décrivent le type de données :
categorical
numeric_discrete
numeric_continuous
Le type de données spécifié détermine si d'autres propriétés statistiques sont décrites avec des clés, telles que min
, max
et mean
. Par exemple, lorsque le type de données « numeric_discrete
» ou « numeric_continuous
» est spécifié, les propriétés sont décrites comme indiqué dans l'exemple suivant :
{
"name": "LoanDuration",
"dtype": "numeric_discrete",
"count": 5000,
"sparse": false,
"skip_learning": false,
"min": 4,
"max": 53,
"mean": 21.28820697954272,
"std": 10.999096037050032,
"percentiles": [
13.0,
21.0,
29.0
],
"count_actual": 4986
}
La clé d' count
s spécifie le nombre de lignes d'une colonne. Les valeurs booléennes sont spécifiées pour décrire les clés d' sparse
s et d' skip_learning
s d'une colonne. La clé « sparse
» indique si une colonne est clairsemée et la clé « skip_learning
» indique si une colonne ignore l'apprentissage de l'une des règles décrites dans le schéma. Une colonne est clairsemée si les percentiles d' 25th s et d' 75th s ont la même valeur.
La clé « name
» spécifie le type de contrainte. Les valeurs suivantes sont spécifiées pour décrire le type de contrainte :
categorical_distribution_constraint
numeric_range_constraint
numeric_distribution_constraint
catnum_range_constraint
catnum_distribution_constraint
catcat_distribution_constraint
La clé d' id
s identifie les contraintes avec un identifiant unique universel (UUID). La clé « kind
» indique si la contrainte est de type « single_column
» ou « two-column
».
La clé « columns
» spécifie un tableau de noms de colonnes. Lorsqu'une contrainte d' single_column
ité avec la clé d' kind
ité est spécifiée, le tableau contient une valeur qui est en corrélation avec la colonne que vous souhaitez décrire. Lorsqu'une contrainte d' two-column
ité avec la clé d' kind
ité est spécifiée, le tableau contient des valeurs qui sont en corrélation avec les colonnes qui contiennent des données associées.
La clé « content
» spécifie les attributs qui décrivent les caractéristiques statistiques de vos données. Le type de contrainte spécifié avec la clé « name
» détermine l'attribut spécifié dans la clé « content
», comme indiqué dans le tableau suivant :
Attribut | Contraintes |
---|---|
fréquence_distribution | catégorique_contrainte_distribution |
plages | numeric_range_constraint, catnum_range_constraint |
distribution | numeric_distribution_constraint, catnum_distribution_constraint |
rare_combinations | catcat_distribution_constraint |
source_column | catcat_distribution_constraint, catnum_range_constraint, catnum_distribution_constraint |
target_column | catcat_distribution_constraint, catnum_range_constraint, catnum_distribution_constraint |
Les sections suivantes fournissent des exemples de la manière dont chaque type de contrainte est spécifié :
- Contraintes de distribution catégorique
- Contrainte de plage numérique
- Contrainte de distribution numérique
- Catégorique - contrainte de distribution catégorique
- Contraintes catégoriques - contraintes de plage numérique
- Contraintes de distribution catégorielle-numérique
Contraintes de distribution catégorique
{
"name": "categorical_distribution_constraint",
"id": "f0476d40-d7df-4095-9be5-82564511432c",
"kind": "single_column",
"columns": [
"CheckingStatus"
],
"content": {
"frequency_distribution": {
"0_to_200": 1304,
"greater_200": 305,
"less_0": 1398,
"no_checking": 1993
}
}
}
Dans les données de formation, la colonne « CheckingStatus
» contient quatre valeurs spécifiées avec l'attribut « frequency_distribution
». L'attribut « frequency_distribution
» spécifie les décomptes de fréquence avec des valeurs pour les catégories, telles que « 0_to_200
». Si des enregistrements sont trouvés dans les données de charge utile qui spécifient des valeurs différentes des valeurs d'attributs d' frequency_distribution
, les enregistrements sont identifiés comme étant des dérives.
Contrainte de plage numérique
{
"name": "numeric_range_constraint",
"id": "79f3a1f5-30a1-4c7f-91a0-1613013ee802",
"kind": "single_column",
"columns": [
"LoanAmount"
],
"content": {
"ranges": [
{
"min": 250,
"max": 11676,
"count": 5000
}
]
}
}
La colonne « LoanAmount
» contient les valeurs minimales et maximales spécifiées avec l'attribut « ranges
» pour définir une plage pour les données d'apprentissage. L'attribut « ranges
» spécifie les régions à haute densité de la colonne. Les plages qui apparaissent rarement dans les données de formation ne sont pas incluses. Si des enregistrements sont trouvés dans les données de charge utile qui ne correspondent pas à la plage et à un tampon prédéfini, les enregistrements sont identifiés comme étant des dérives.
Contrainte de distribution numérique
{
"name": "numeric_distribution_constraint",
"id": "3a97494b-0cd7-483e-a1c6-adb7755c1cb0",
"kind": "single_column",
"columns": [
"LoanAmount"
],
"content": {
"distribution": {
"name": "norm",
"parameters": {
"loc": 3799.62,
"scale": 1920.0640064678398
},
"p-value": 0.22617155797563282
}
}
}
La colonne « LoanAmount
» contient les valeurs spécifiées avec l'attribut « distribution
» pour définir une distribution normale pour les données d'apprentissage. Si des enregistrements sont trouvés dans les données de charge utile qui ne correspondent pas à la distribution normale, ils sont identifiés comme étant des dérives. Les distributions qui sont ajustées à l'intérieur sont des distributions uniformes, exponentielles ou normales. Si les enregistrements qui correspondent à ces distributions ne sont pas trouvés, cette contrainte n'est pas apprise.
Catégorique - contrainte de distribution catégorique
{
"name": "catcat_distribution_constraint",
"id": "99468600-1924-44d9-852c-1727c9c414ee",
"kind": "two_column",
"columns": [
"CheckingStatus",
"CreditHistory"
],
"content": {
"source_column": "CheckingStatus",
"target_column": "CreditHistory",
"rare_combinations": [
{
"source_value": "no_checking",
"target_values": [
"no_credits"
]
}
]
}
}
Pour les colonnes « CheckingStatus
» et « CreditHistory
», les attributs « rare_combinations
» spécifient une combinaison de valeurs qui apparaissent rarement dans les données d'apprentissage. Si des enregistrements contenant la combinaison sont trouvés dans les données de la charge utile, ils sont identifiés comme des dérives.
Contraintes catégoriques - contraintes de plage numérique
{
"name": "catnum_range_constraint",
"id": "f252033c-1635-4974-8976-3f7904d0c37d",
"kind": "two_column",
"columns": [
"CheckingStatus",
"LoanAmount"
],
"content": {
"source_column": "CheckingStatus",
"target_column": "LoanAmount",
"ranges": {
"no_checking": [
{
"min": 250,
"max": 11676,
"count": 1993
}
],
"less_0": [
{
"min": 250,
"max": 7200,
"count": 1398
}
],
"0_to_200": [
{
"min": 250,
"max": 9076,
"count": 1304
}
],
"greater_200": [
{
"min": 250,
"max": 9772,
"count": 305
}
]
}
}
}
L'attribut « ranges
» spécifie les valeurs minimales et maximales des colonnes « CheckingStatus
» et « LoanAmount
» qui définissent une plage pour les données de formation. Si des enregistrements sont trouvés dans les données de la charge utile qui ne contiennent pas de valeurs de colonne LoanAmount
et CheckingStatus
qui correspondent à la plage et à un tampon prédéfini, les enregistrements sont identifiés comme étant des dérives.
Contraintes de distribution catégorielle-numérique
{
"name": "catnum_distribution_constraint",
"id": "3a97494b-0cd7-483e-a1c6-adb7755c1cb0",
"kind": "two_column",
"columns": [
"CheckingStatus",
"LoanAmount"
],
"content": {
"source_column": "CheckingStatus",
"target_column": "LoanAmount",
"distribution": {
"greater_200": {
"name": "norm",
"parameters": {
"loc": 3799.62,
"scale": 1920.0640064678398
},
"p-value": 0.22617155797563282
}
}
}
}
Les colonnes « LoanAmount
» et « CheckingStatus
» contiennent des valeurs spécifiées avec l'attribut « distribution
» pour définir une distribution normale pour les données d'apprentissage. Si des enregistrements sont trouvés dans les données de charge utile qui ne contiennent pas de valeurs de colonne LoanAmount
et CheckingStatus
qui correspondent à la distribution normale, les enregistrements sont identifiés comme étant des dérives.
Etapes suivantes
Pour atténuer la dérive après sa détection, vous devez créer une nouvelle version du modèle qui corrige le problème. Les points de données mis en évidence comme causes de la dérive constituent un bon point de départ. Introduisez les nouvelles données dans le modèle prédictif après avoir manuellement étiqueté les transactions déviées et utilisez-les pour réentraîner le modèle.
Sujet parent : Indicateurs d'évaluation