La acción `alJoin` del conjunto de acciones `activeLearn` se utiliza para unir una tabla de datos principal con una tabla de anotaciones. Esta operación es fundamental en los flujos de trabajo de aprendizaje activo, donde los datos recién etiquetados (anotaciones) deben reintegrarse con el conjunto de datos original para entrenar o reentrenar un modelo. La acción soporta varios tipos de uniones (izquierda, derecha, interna, completa, etc.) para controlar cómo se combinan las filas de ambas tablas.
| Parámetro | Descripción |
|---|---|
| annotatedTable | Especifica la tabla en memoria que contiene los datos de anotación para la operación de unión. A menudo se considera la tabla 'derecha' en la unión. |
| casOut | Especifica la tabla de salida donde se almacenarán los resultados de la unión. |
| id | Especifica la columna de identificador única que se utilizará para unir la tabla de datos y la tabla de anotaciones. |
| joinType | Especifica cómo se unen las tablas. Los valores posibles son 'APPEND', 'FULL', 'INNER', 'LEFT' (predeterminado) y 'RIGHT'. |
| logLevel | Especifica el nivel de detalle de los mensajes de progreso. 0 (sin mensajes), 1 (mensajes de inicio/fin), 2 (historial de iteraciones). |
| table | Especifica la tabla de datos principal en memoria para la operación de unión. A menudo se considera la tabla 'izquierda'. |
Se crean dos tablas: 'CARS_DATA' que contiene los datos principales de los coches, y 'CARS_ANNOTATIONS' que contiene etiquetas adicionales (anotaciones) para un subconjunto de esos coches. Ambas tablas comparten una columna 'ID' para la unión.
| 1 | DATA casuser.CARS_DATA; |
| 2 | LENGTH ID $ 10; |
| 3 | INPUT ID $ Make $ Model $ Type $; |
| 4 | DATALINES; |
| 5 | ID001 Audi A4 Sedan |
| 6 | ID002 BMW X5 SUV |
| 7 | ID003 Mercedes C-Class Sedan |
| 8 | ID004 Toyota Camry Sedan |
| 9 | ID005 Honda CR-V SUV |
| 10 | ; |
| 11 | RUN; |
| 12 | |
| 13 | DATA casuser.CARS_ANNOTATIONS; |
| 14 | LENGTH ID $ 10; |
| 15 | INPUT ID $ IsLabeled 1.; |
| 16 | DATALINES; |
| 17 | ID002 1 |
| 18 | ID005 1 |
| 19 | ; |
| 20 | RUN; |
Este ejemplo realiza una unión izquierda ('LEFT JOIN') entre la tabla de datos principal 'CARS_DATA' y la tabla de anotaciones 'CARS_ANNOTATIONS'. Todas las filas de la tabla de datos se conservan, y las anotaciones correspondientes se añaden donde exista una coincidencia en la columna 'ID'.
| 1 | PROC CAS; |
| 2 | activeLearn.alJoin / |
| 3 | TABLE={name='CARS_DATA'}, |
| 4 | annotatedTable={name='CARS_ANNOTATIONS'}, |
| 5 | id='ID', |
| 6 | joinType='LEFT', |
| 7 | casOut={name='CARS_JOINED_LEFT', replace=true}; |
| 8 | RUN; |
Este ejemplo realiza una unión interna ('INNER JOIN'). Solo las filas que tienen un 'ID' coincidente en ambas tablas, 'CARS_DATA' y 'CARS_ANNOTATIONS', se incluirán en la tabla de salida. Esto es útil para crear un conjunto de datos que solo contenga las observaciones que han sido explícitamente etiquetadas.
| 1 | PROC CAS; |
| 2 | activeLearn.alJoin / |
| 3 | TABLE={name='CARS_DATA', caslib='casuser'}, |
| 4 | annotatedTable={name='CARS_ANNOTATIONS', caslib='casuser'}, |
| 5 | id='ID', |
| 6 | joinType='INNER', |
| 7 | casOut={name='CARS_JOINED_INNER', caslib='casuser', replace=true}; |
| 8 | RUN; |
Un equipo de marketing necesita preparar un conjunto de datos para entrenar un modelo de análisis de sentimiento. Tienen una tabla principal con todos los comentarios de los cli...
Una planta industrial monitoriza sus máquinas con sensores. Los datos de los sensores se guardan en una tabla ('DATOS_SENSORES') y las intervenciones de mantenimiento se registr...
En un proyecto de etiquetado de imágenes a gran escala, los datos se etiquetan en lotes. En lugar de realizar una unión costosa basada en claves cada vez que llega un nuevo lote...