Le composant Split de Machine Learning Designer dans Platform for AI (PAI) divise un jeu de données en deux tables de sortie. Utilisez-le pour créer des ensembles d'entraînement et de test avant l'entraînement du modèle.
Choisissez votre méthode de division en fonction de vos données :
| Méthode | Cas d'utilisation |
|---|---|
| Split by ratio | Divisions aléatoires basées sur une proportion — adaptées à la plupart des jeux de données |
| Split by threshold | Divisions ordonnées basées sur la valeur d'une colonne numérique, comme les séries temporelles où toutes les lignes antérieures à une date limite doivent figurer dans une même table |
Si les paramètres de ratio et de seuil sont tous deux configurés, la méthode basée sur le seuil est prioritaire.
Configurer le composant
Méthode 1 : Utiliser la PAI console
Sur la page des détails du pipeline, localisez le composant Split dans la liste des composants à gauche, faites-le glisser vers le canevas et connectez-le à un nœud en amont. Cliquez sur le composant pour ouvrir son panneau de configuration.
Split by ratio
Configurez les paramètres suivants sous l'onglet Parameters Setting :
| Paramètre | Description | Obligatoire |
|---|---|---|
| Splitting Method | Sélectionnez Split by Ratio. | Oui |
| Splitting Fraction | Proportion de données dans la Output Table 1 par rapport au jeu de données complet. Valeurs valides : (0, 1). Par exemple, définissez 0.8 pour placer 80 % des lignes dans Output Table 1 et 20 % dans Output Table 2. |
Oui |
| Random Seed | Fixe l'état du générateur aléatoire afin que la réexécution du pipeline avec la même seed produise la même division. Si ce champ est laissé vide, le système génère automatiquement une seed. | Non |
| ID Column (disponible sous Advanced Options) | Conserve toutes les lignes partageant la même valeur d'ID dans la même table de sortie. Utilisez cette option lorsque votre jeu de données contient plusieurs lignes par entité — par exemple, plusieurs transactions par client — pour éviter qu'une même entité n'apparaisse dans les deux tables (fuite de données). Une seule colonne peut être sélectionnée. | Non |
Split by threshold
| Paramètre | Description | Obligatoire |
|---|---|---|
| Splitting Method | Sélectionnez Split by Threshold. | Oui |
| Threshold Column | Colonne numérique utilisée pour la division. Les colonnes STRING ne sont pas prises en charge. | Oui |
| Threshold | Les lignes dont la valeur de colonne est inférieure au seuil vont dans la Output Table 1. Les lignes dont la valeur est supérieure ou égale au seuil vont dans la Output Table 2. Par exemple, avec un seuil de 100 : une ligne avec la valeur 80 va dans Output Table 1, et une ligne avec la valeur 100 ou 120 va dans Output Table 2. |
Oui |
Paramètres de réglage
| Paramètre | Description |
|---|---|
| Cores | Nombre de cœurs pour la tâche. Alloué automatiquement en fonction de la taille des données d'entrée. |
| Memory size per core | Mémoire par cœur en Mo. Allouée automatiquement en fonction de la taille des données d'entrée. |
Méthode 2 : Exécuter des commandes PAI
Sur la page des détails du pipeline, faites glisser le composant SQL Script vers le canevas et cliquez dessus pour ouvrir le panneau de configuration. Sous Parameters Setting, désactivez l'option Whether the system adds a create table statement , collez la commande suivante dans l'éditeur SQL Script et exécutez-la.
L'exemple suivant divise la table wbpc par ratio, en plaçant 25 % des données dans wpbc_split1 et les 75 % restants dans wpbc_split2 :
PAI -name split -project algo_public
-DinputTableName=wbpc
-Doutput1TableName=wpbc_split1
-Doutput2TableName=wpbc_split2
-Dfraction=0.25;
Pour plus d'informations sur le composant SQL Script, consultez SQL Script.
Les paramètres de ratio (fraction,randomSeed,idColName) et les paramètres de seuil (thresholdColName,threshold) ne peuvent pas être utilisés dans la même commande.
Paramètres courants
| Paramètre | Obligatoire | Description | Par défaut |
|---|---|---|---|
inputTableName |
Oui | Nom de la table d'entrée. | — |
inputTablePartitions |
Non | Partitions à lire depuis la table d'entrée. Formats : partition_name=value pour les partitions à un seul niveau ; name1=value1/name2=value2 pour les partitions à plusieurs niveaux. Séparez plusieurs partitions par des virgules. |
Toutes les partitions |
output1TableName |
Oui | Nom de Output Table 1. | — |
output1TablePartition |
Non | Nom de partition pour Output Table 1. | Sans partition |
output2TableName |
Oui | Nom de Output Table 2. | — |
output2TablePartition |
Non | Nom de partition pour Output Table 2. | Sans partition |
lifecycle |
Non | Cycle de vie des tables de sortie, en jours. Valeurs valides : [1, 3650]. | — |
coreNum |
Non | Nombre de cœurs. Paramètre de réglage ; alloué automatiquement en fonction de la taille des données d'entrée. | Auto |
memSizePerCore |
Non | Mémoire par cœur en Mo. Paramètre de réglage ; allouée automatiquement en fonction de la taille des données d'entrée. Valeurs valides : (1, 65536). | Auto |
Paramètres Split by ratio
| Paramètre | Obligatoire | Description | Par défaut |
|---|---|---|---|
fraction |
Oui | Proportion de données dans Output Table 1. Valeurs valides : (0, 1). | — |
randomSeed |
Non | Seed aléatoire ; doit être un entier positif. | Auto |
idColName |
Non | Nom de la colonne ID. Conserve toutes les lignes ayant le même ID dans la même table de sortie, empêchant ainsi les fuites de données entre les ensembles d'entraînement et de test. Une seule colonne peut être sélectionnée. | — |
Paramètres Split by threshold
| Paramètre | Obligatoire | Description | Par défaut |
|---|---|---|---|
thresholdColName |
Oui | Nom de la colonne de seuil. Les colonnes STRING ne sont pas prises en charge. | — |
threshold |
Oui | Seuil de division. Les lignes dont les valeurs sont inférieures au seuil vont dans Output Table 1 ; les lignes dont les valeurs sont supérieures ou égales au seuil vont dans Output Table 2. | — |