Valores ausentes (Analysis Services - Minería de datos)
Un valor ausente puede tener distintos significados en los datos. Es posible que el campo no fuera aplicable, que el evento no se produjera o que los datos no estuvieran disponibles. También puede deberse a que la persona que escribió los datos no conocía el valor correcto, o no se preocupó de rellenar un campo. Por consiguiente, Analysis Services dispone de dos mecanismos claramente diferenciados para administrar y calcular estos valores ausentes, también conocidos como valores NULL.
Si la tarea que está modelando especifica que una columna nunca debe tener valores ausentes, debe utilizar el marcador de modelado NOT_NULL al definir la estructura de minería de datos. Así se asegurará de que se producirá un error en el procesamiento si un caso no tiene un valor adecuado. Si se produce un error al procesar un modelo, puede registrarlo y tomar las medidas necesarias para corregir los datos que se proporcionan al modelo. Existen diversas herramientas que puede utilizar para deducir y rellenar los valores adecuados, como la transformación Búsqueda o la tarea de generación de perfiles de datos en SQL Server Integration Services, o la herramienta Rellenar desde ejemplo incluida en los complementos de minería de datos para Excel.
Sin embargo, también hay muchos escenarios de minería de datos en los que los valores ausentes proporcionan información importante. Generalmente, Analysis Services trata los valores ausentes como informativos y ajusta las probabilidades para incorporarlos en sus cálculos. De esta forma, puede asegurarse de que los modelos están equilibrados y no dan demasiada importancia a los casos existentes. En esta sección se explica cómo se definen y se consideran como Ausente los valores en los modelos que permiten valores NULL. En este tema también se describe el modo en que los algoritmos de minería de datos procesan y utilizan estos valores Missing al crear un modelo.
Nota
Cada algoritmo, incluidos los algoritmos personalizados que pudiera haber obtenido de un complemento de otro proveedor, puede administrar los valores ausentes de manera diferente.
Usar valores ausentes en modelos
Para el algoritmo de minería de datos, los valores ausentes son informativos. En las tablas de casos, Missing es un estado tan válido como cualquier otro. Es más, un modelo de minería de datos puede utilizar otros valores para predecir la ausencia de un valor. En otras palabras, la ausencia de un valor no se interpreta como un error.
Cuando se crea un modelo de minería de datos, se agrega automáticamente un estado Missing a dicho modelo para todas las columnas discretas. Por ejemplo, si la columna de entrada Sexo contiene dos posibles valores, Hombre y Mujer, automáticamente se agrega un tercer valor para representar el valor Missing, y el histograma que muestra la distribución de todos los valores de la columna siempre incluirá el recuento de los casos con valores Missing. Si en la columna Sexo no hay ningún valor ausente, el histograma muestra que el estado Ausente aparece en 0 casos.
Incluya el estado Missing de forma predeterminada si cree probable que los datos no dispongan de ejemplos de todos los valores posibles y no se desea que el modelo excluya la posibilidad sólo porque no existe ningún ejemplo en los datos. Por ejemplo, si los datos de ventas de una tienda muestran que todos los clientes que compraron un determinado producto resultaron ser mujeres, probablemente no desee crear un modelo que prediga que únicamente las mujeres podrán adquirir el producto. En su lugar, Analysis Services agrega un marcador de posición para el valor desconocido adicional, denominado Missing, que permitiría alojar otros posibles estados.
Por ejemplo, la tabla siguiente muestra la distribución de valores para el nodo (Todos) del modelo de árbol de decisión creado para el tutorial de Bike Buyer. En el ejemplo, la columna [Bike Buyer] es el atributo de predicción, donde 1 indica "Sí" y 0 indica "No".
Valor |
Casos |
---|---|
0 |
9296 |
1 |
9098 |
Ausente |
0 |
Esta distribución muestra que aproximadamente la mitad de los clientes han comprado una bicicleta, y la otra mitad no lo ha hecho. Este conjunto de datos concreto es muy limpio; por consiguiente, cada caso tiene un valor en la columna [Bike Buyer] y el recuento de valores Missing es 0. Sin embargo, si un caso tuviera un valor NULL en el campo [Bike Buyer], Analysis Services, consideraría esa fila como un caso con un valor Missing.
Si la entrada es una columna continua, el modelo tabula dos posibles estados para el atributo: Existing y Missing. En otras palabras, o la columna contiene un valor de algún tipo de datos numéricos o no contiene ningún valor. Para los casos que tienen un valor, el modelo calcula la media, la desviación estándar y otras estadísticas significativas. Para los casos que no tienen ningún valor, el modelo proporciona un recuento de los valores Missing y ajusta las predicciones de la forma apropiada. El método para ajustar la predicción difiere dependiendo del algoritmo y se describe en la sección siguiente.
Nota
Para los atributos de una tabla anidada, los valores ausentes no son informativos. Por ejemplo, si un cliente no ha comprado un producto, la tabla anidada Productos no tendrá ninguna fila para dicho producto y el modelo de minería no creará ningún atributo para el producto ausente. Sin embargo, si le interesan los clientes que no han comprado determinados productos, puede crear un modelo cuyo filtro esté basado en la inexistencia de los productos en la tabla anidada, utilizando para ello una instrucción NOT EXISTS en el filtro de modelos. Para obtener más información, vea Cómo aplicar un filtro a un modelo de minería de datos.
Ajustar la probabilidad para el valor ausente
Además de contar los valores, Analysis Services calcula la probabilidad de cualquier valor en el conjunto de datos. Esto también se aplica a los valores Missing. Por ejemplo, la tabla siguiente muestra las probabilidades por los casos del ejemplo anterior:
Valor |
Casos |
Probabilidad |
---|---|---|
0 |
9296 |
50.55% |
1 |
9098 |
49.42% |
Missing |
0 |
0.03% |
Puede parecer extraño que la probabilidad del valor Missing sea 0,03%, cuando el número de casos es 0. En realidad, este comportamiento forma parte del diseño y representa un ajuste que permite al modelo administrar correctamente los valores desconocidos.
En general, la probabilidad se calcula dividiendo los casos favorables entre todos los casos posibles. En este ejemplo, el algoritmo calcula la suma de los casos que cumplen una condición determinada ([Bike Buyer] = 1 o [Bike Buyer] = 0) y divide ese número entre el recuento total de filas. Sin embargo, para representar los casos Missing, se suma 1 al número de casos posibles. Como resultado, la probabilidad para el caso desconocido ya no es cero, sino un número muy pequeño, lo que indica que el estado es simplemente improbable, no imposible.
La suma de este pequeño valor para Missing no cambia el resultado del elemento de predicción; sin embargo, mejora el modelado en escenarios donde los datos históricos no contemplan todos los resultados posibles.
Nota
Los proveedores de minería de datos difieren en la forma de administrar los valores ausentes. Por ejemplo, algunos proveedores dan por hecho que los datos ausentes en una columna anidada constituyen una representación dispersa, pero que esos mismos datos en una columna no anidada están ausentes de forma aleatoria.
Si está seguro de que en los datos se especifican todos los resultados y desea evitar que se ajusten las probabilidades, deberá establecer el marcador de modelado NOT_NULL en la columna de la estructura de minería de datos.
Administrar de manera especial los valores ausentes en los modelos de árbol de decisión
El algoritmo de árboles de decisión de Microsoft calcula las probabilidades para los valores ausentes de manera diferente que otros algoritmos. En lugar de limitarse a agregar 1 al número total de casos, el algoritmo de árboles de decisión se ajusta a los estados Ausente utilizando una fórmula algo diferente.
En un modelo de árbol de decisión, la probabilidad del estado ausente se calcula de la forma siguiente:
ProbabilidadEstado = (ProbabilidadNodoAnterior) * (SoporteEstado + 1) / (SoporteNodo + TotalEstados)
Además, en SQL Server 2008 Analysis Services, el algoritmo de árboles de decisión proporciona un ajuste adicional que ayuda al algoritmo a compensar la presencia de filtros en el modelo, lo que puede conllevar la exclusión de muchos estados durante el proceso de entrenamiento.
En SQL Server 2008, si un estado está presente durante el proceso de entrenamiento pero el soporte es 0 en un cierto nodo, se realiza el ajuste estándar. Sin embargo, si un estado nunca aparece durante el proceso de entrenamiento, el algoritmo establece la probabilidad exactamente en 0. Este ajuste no sólo se aplica al estado Ausente, sino también a los estados que existen en los datos de entrenamiento, pero que tienen un soporte 0 como resultado del filtrado de modelos.
Este ajuste adicional da como resultado la fórmula siguiente:
ProbabilidadEstado = 0,0 si ese estado tiene un soporte 0 en el conjunto de entrenamiento
ProbabilidadEstado ELSE = (ProbabilidadNodoAnterior) * (SoporteEstado + 1) / (SoporteNodo + TotalEstadosConSoporteDistintoCero)
El efecto neto de este ajuste es mantener la estabilidad del árbol.