Crear una estructura y un modelo de red neuronal (Tutorial intermedio de minería de datos)

Para crear un modelo de minería de datos, debe usar en primer lugar el Asistente para minería de datos con el objeto de crear una nueva estructura de minería de datos basada en la nueva vista del origen de datos. En esta tarea, utilizará el asistente para crear una estructura de minería de datos y al mismo tiempo crear el modelo inicial de minería de datos que se basa en el algoritmo de red neuronal de Microsoft.

Dado que las redes neuronales son extremadamente flexibles y pueden analizar diferentes combinaciones de entradas y salidas, debe realizar pruebas con diferentes métodos de procesamiento de los datos para obtener los mejores resultados. Por ejemplo, puede que desee personalizar la manera en que los datos se discretizan, o agrupan, para satisfacer requisitos empresariales concretos. Para ello, agregará una columna nueva a la estructura de minería de datos que agrupa los datos numéricos de una manera diferente y, a continuación, creará un modelo que use la columna nueva. Utilizará estos modelos de minería de datos para hacer una exploración.

Finalmente, cuando haya aprendido del modelo de red neuronal qué factores tienen el mayor impacto para su cuestión comercial, construirá un modelo independiente para la predicción y evaluación. Utilizará el algoritmo de regresión logística de Microsoft, que se basa en el modelo de redes neurales pero está optimizado para buscar una solución basada en entradas concretas.

Crear la estructura de centro de llamadas predeterminada

Para crear la estructura y el modelo de minería de datos de red neuronal predeterminados

  1. En el Explorador de soluciones de Business Intelligence Development Studio, haga clic con el botón secundario en Estructuras de minería de datos y seleccione Nueva estructura de minería de datos.

  2. En la página de inicio del Asistente para minería de datos, haga clic en Siguiente.

  3. En la página Seleccionar el método de definición, compruebe que la opción A partir de una base de datos relacional o del almacenamiento de datos se ha seleccionado y, a continuación, haga clic en Siguiente.

  4. En la página Crear la estructura de minería de datos, compruebe que la opción Crear la estructura de minería de datos con un modelo de minería de datos está seleccionada.

  5. Haga clic en la lista desplegable para la opción ¿Qué técnica de minería de datos desea utilizar? y seleccione Redes neuronales de Microsoft.

    Dado que los modelos de regresión logística se basan en las redes neuronales, puede volver a usar la misma estructura y agregar un nuevo modelo de minería de datos.

  6. Haga clic en Siguiente.

    Aparecerá la página Seleccionar vista del origen de datos.

  7. En Vistas del origen de datos disponibles, seleccione Call Center y haga clic en Siguiente.

  8. En la página Especificar tipos de tablas, active la casilla Escenario, situada junto a la tabla FactCallCenter. Haga clic en Siguiente.

  9. En la página Especificar los datos de aprendizaje, active la casilla Clave situada junto a la columna FactCallCenterID.

  10. Active las casillas Predicción y Entrada.

  11. Active las casillas Clave, Entrada y Predicción, tal como se muestra en la tabla siguiente:

    Tablas y columnas

    Clave/Entrada/Predicción

    AutomaticResponses

    Entrada

    AverageTimePerIssue

    Entrada/Predicción

    Calls

    Entrada

    DateKey

    No debe usarse

    DayOfWeek

    Entrada

    FactCallCenterID

    Clave

    IssuesRaised

    Entrada

    LevelOneOperators

    Entrada/Predicción

    LevelTwoOperators

    Entrada

    Orders

    Entrada/Predicción

    ServiceGrade

    Entrada/Predicción

    Mayús

    Entrada

    TotalOperators

    No debe usarse

    WageType

    Entrada

  12. En la página Especificar el contenido y el tipo de datos de las columnas, compruebe que la cuadrícula contiene las columnas, los tipos de contenido y los tipos de datos que se muestran en la tabla siguiente y, a continuación, haga clic en Siguiente.

    Columnas

    Tipo de contenido

    Tipos de datos

    AutomaticResponses

    Continuo

    Long

    AverageTimePerIssue

    Continuo

    Long

    Calls

    Continuo

    Long

    DayOfWeek

    Discreto

    Text

    FactCallCenterID

    Clave

    Long

    IssuesRaised

    Continuo

    Long

    LevelOneOperators

    Continuo

    Long

    LevelTwoOperators

    Continuo

    Long

    Orders

    Continuo

    Long

    ServiceGrade

    Continuo

    Double

    Mayús

    Discreto

    Text

    WageType

    Discreto

    Text

  13. En la página Crear conjunto de pruebas, borre el cuadro de texto de la opción Porcentaje de datos para pruebas. Haga clic en Siguiente.

  14. En la página Finalización del asistente, como Nombre de la estructura de minería de datos, escriba Call Center.

  15. En Nombre del modelo de minería de datos, escriba Call Center Default NN y, a continuación, haga clic en Finalizar.

    La casilla Permitir obtención de detalles está deshabilitada porque no puede obtener detalles de los datos con modelos de red neuronal.

  16. En el Explorador de soluciones, haga clic con el botón secundario en el nombre de la estructura de minería de datos recién creada y seleccione Procesar.

Descripción de la discretización

De forma predeterminada, cuando crea un modelo de red neuronal que incluye un atributo de predicción numérico, el algoritmo de red neuronal de Microsoft lo trata como un número continuo. Por ejemplo, el atributo ServiceGrade es un número que, en teoría, abarca desde 0,00 (se responden todas las llamadas) a 1,00 (cuelgan todos los que han llamado). En este conjunto de datos, los valores tienen la siguiente distribución:

distribución de valores de grado de servicio

Como resultado, al procesar el modelo los resultados pueden aparecer de forma diferente a la que se espera. Por ejemplo, el modelo predeterminado, que utiliza agrupación en clústeres para localizar grupos de valores, divide ServiceGrade en intervalos como 0,0748051948 - 0,09716216215. Aunque esta agrupación es matemáticamente precisa, tales intervalos podrían no ser significativos para los usuarios empresariales. Para agrupar los valores numéricos de manera diferente, puede crear una o varias copias de la columna de datos numéricos y especificar cómo debería procesar los valores el algoritmo de minería de datos. Por ejemplo, podría especificar que el algoritmo divida los valores en menos de seis contenedores.

Analysis Services proporciona varios métodos para discretizar o procesar los datos numéricos. La tabla siguiente muestra las diferencias entre los resultados cuando el atributo ServiceGrade de salida se ha procesado de tres maneras diferentes:

  • Tratándolo como un número continuo

  • Haciendo que el algoritmo discretice el valor mediante el mejor método posible, que es la agrupación en clústeres

  • Especificando que los números se discreticen mediante el método de áreas iguales

Modelo predeterminado (continuo)

Discretizado mediante agrupación en clústeres

Discretizado mediante áreas iguales

VALUESUPPORT
Missing0
0.09875120
VALUESUPPORT
< 0.074805194834
0.0748051948 - 0.0971621621527
0.09716216215 - 0.1329729729539
0.13297297295 - 0.16749999997510
>= 0.16749999997510
VALUESUPPORT
< 0.0726
0.07 - 0.0022
0.09 - 0.1136
>= 0.1236

En esta tabla, la columna VALUE muestra cómo se ha administrado el número continuo y la columna SUPPORT muestra cuántas filas se encontraron con ese valor, intervalo o tipo de valor. Para obtener más información acerca de las opciones de enlace, vea Métodos de discretización (minería de datos).

Nota

Puede obtener estas estadísticas a partir del nodo de estadísticas marginales del modelo una vez que se hayan procesado todos los datos. Para obtener más información acerca del nodo de estadísticas marginales, vea Contenido del modelo de minería de datos para los modelos de red neuronal (Analysis Services - Minería de datos).

O bien, en lugar de usar valores numéricos, podría agregar una columna derivada independiente que clasifique los grados de servicio en los intervalos de destino predefinidos, como Mejor (ServiceGrade <= 0.05), Aceptable (0.10 > ServiceGrade > 0.05) y Pobre (ServiceGrade >= 0.10).

Crear una copia de una columna y cambiar el método de discretización

En minería de datos de Analysis Services, puede cambiar con facilidad la manera en que los datos numéricos se discretizan dentro de una estructura de minería de datos agregando una copia de la columna que contiene los datos de destino y cambiando el método de discretización.

El procedimiento siguiente describe cómo realizar una copia de la columna de minería de datos que contiene el atributo de destino, ServiceGrade. Puede crear varias copias de cualquier columna de una estructura de minería de datos, incluido el atributo de predicción.

A continuación, personalizará la agrupación de los valores numéricos en la columna copiada para reducir la complejidad de las agrupaciones. En este tutorial utilizará el método de discretización de áreas iguales y especificará cuatro depósitos. Las agrupaciones que resultan de este método están bastante cerca de los valores objetivo que interesan a los usuarios empresariales.

Nota

Durante la exploración inicial de los datos, también puede experimentar con varios métodos de discretización o probar primero a agrupar los datos en clústeres.

Para crear una copia personalizada de una columna de la estructura de minería de datos

  1. En el Explorador de soluciones, haga doble clic en la estructura de minería de datos recién creada.

  2. En la ficha Estructura de minería de datos, haga clic en Agregar una columna de estructura de minería de datos.

  3. En el cuadro de diálogo Seleccionar columna, seleccione ServiceGrade en la lista Columna de origen y, a continuación, haga clic en Aceptar.

    Se agrega una columna nueva a la lista de columnas de la estructura de minería de datos. De forma predeterminada, la nueva columna de minería de datos tiene el mismo nombre que la columna existente, con un sufijo numérico: por ejemplo, ServiceGrade 1. Puede cambiar el nombre de esta columna para que sea más descriptivo.

    También especificará el método de discretización.

  4. Haga clic con el botón secundario en ServiceGrade 1 y seleccione Propiedades.

  5. En la ventana Propiedades, localice la propiedad Name y cambie el nombre de Call Center Binned NN.

  6. Un cuadro de diálogo aparece en el que se pregunta si desea realizar el mismo cambio en el nombre de todas las columnas del modelo de minería de datos relacionadas. Haga clic en No.

  7. En la ventana Propiedades, localice la sección Tipo de datos y expándala si es necesario.

  8. Cambie el valor de la propiedad Content de Continuous a Discretized.

    Ahora están disponibles las propiedades siguientes. Cambie los valores de las propiedades tal como se muestra en la tabla siguiente:

    Propiedad

    Valor predeterminado

    Valor nuevo

    DiscretizationMethod

    Continuous

    EqualAreas

    DiscretizationBucketCount

    Sin valor

    4

    Nota

    El valor predeterminado de DiscretizationBucketCount es 0, que indica que el algoritmo determina automáticamente el número óptimo de depósitos. Por tanto, si desea restablecer el valor predeterminado de esta propiedad, escriba 0.

  9. En el Diseñador de minería de datos, haga clic en la ficha Modelos de minería de datos.

    Observe que al agregar una copia de una columna de la estructura de minería de datos, la marca de uso de la copia se establece automáticamente en Ignore. Normalmente, al agregar una copia de una columna a una estructura de minería de datos, no utilizaría la copia para el análisis junto con la columna original o el algoritmo encontrará una correlación fuerte entre las dos columnas que podrían disimular otras relaciones.

Agregar un modelo de minería de datos nuevo a la estructura de minería de datos

Ahora que ha creado una nueva agrupación para el atributo de destino, necesita agregar un nuevo modelo de minería de datos que use la columna de datos discretos. Cuando lo haya hecho, la estructura de minería de datos CallCenter tendrá dos modelos de minería de datos:

  • El modelo de minería de datos, Call Center Default NN, administra los valores de ServiceGrade como un intervalo continuo.

  • El modelo de minería de datos, Call Center Default NN, discretiza los valores de ServiceGrade en cuatro depósitos distintos.

Para agregar un modelo de minería de datos basado en la nueva columna de datos discretos

  1. En el Explorador de soluciones, haga clic con el botón secundario en la estructura de minería de datos recién creada y seleccione Abrir.

  2. Haga clic en la ficha Modelos de minería de datos.

  3. Haga clic en Crear un modelo de minería de datos relacionado.

  4. En el cuadro de diálogo Nuevo modelo de minería de datos, en Nombre del modelo, escriba Call Center Binned NN. En la lista desplegable Nombre del algoritmo, seleccione Red neuronal de Microsoft.

  5. En la lista de columnas contenida en el nuevo modelo de minería de datos, busque ServiceGrade y cambie el uso de Predict a Ignore.

  6. De igual forma, busque ServiceGrade Binned y cambie el uso de Ignore a Predict.

Normalmente, no puede comparar modelos de minería de datos que usen atributos de predicción diferentes. Sin embargo, en SQL Server 2008, puede crear un alias para una columna del modelo de minería de datos. Es decir, puede cambiar el nombre de la columna ServiceGrade Binned dentro del modelo de minería de datos de modo que tenga el mismo nombre que la columna original. A continuación, puede comparar directamente estos dos modelos en un gráfico de precisión, aunque los datos se discreticen de manera diferente.

Para agregar un alias para una columna de una estructura de minería de datos de un modelo de minería de datos

  1. En la ficha Modelos de minería de datos, en Estructura, seleccione ServiceGrade Binned.

    Observe que la ventana Propiedades muestra las propiedades del objeto, columna ScalarMiningStructure.

  2. En la columna correspondiente al modelo de minería de datos, ServiceGrade Binned NN, haga clic en la celda que corresponde a la columna ServiceGrade Binned.

    Observe que ahora la ventana Propiedades muestra las propiedades del objeto MiningModelColumn.

  3. Busque la propiedad Name y cambie el valor por ServiceGrade.

  4. Busque la propiedad Description y escriba Alias de columna temporal.

    La ventana Propiedades debería contener la información siguiente:

    Propiedad

    Valor

    Description

    Alias de columna temporal

    Identificador

    ServiceGrade Binned

    Marcas de modelado

      

    Name

    Service Grade

    SourceColumn ID

    Service Grade 1

    Uso

    Predicción

  5. Haga clic en cualquier parte de la ficha Modelo de minería de datos.

    La cuadrícula se actualiza para mostrar el nuevo alias de la columna temporal, ServiceGrade, al lado del uso de la columna. La cuadrícula que contiene la estructura de minería de datos y dos modelos de minería de datos debería tener una apariencia similar a la siguiente:

    Estructura

    Call Center Default NN

    Call Center Binned NN

      

    Red neuronal de Microsoft

    Red neuronal de Microsoft

    AutomaticResponses

    Entrada

    Entrada

    AverageTimePerIssue

    Predicción

    Predicción

    Calls

    Entrada

    Entrada

    DayOfWeek

    Entrada

    Entrada

    FactCallCenterID

    Key

    Key

    IssuesRaised

    Entrada

    Entrada

    LevelOneOperators

    Entrada

    Entrada

    LevelTwoOperators

    Entrada

    Entrada

    Orders

    Entrada

    Entrada

    ServiceGrade Binned

    Ignore

    Predicción (ServiceGrade)

    ServiceGrade

    Predicción

    Ignore

    Mayús

    Entrada

    Entrada

    Total Operators

    Entrada

    Entrada

    WageType

    Entrada

    Entrada

Procesar el modelo

Finalmente, para asegurarse de que los modelos que ha creado son comparables, establecerá el parámetro de inicialización tanto del modelo discretizado como del predeterminado. Al establecer un valor de inicialización se garantiza que cada modelo comienza el procesamiento de los datos desde el mismo punto.

Nota

Si no se especifica un valor numérico para el parámetro de inicialización, SQL Server Analysis Services lo generará a partir del nombre del modelo. Como el modelo de red neuronal y el modelo de regresión logística que se van a generar tienen nombres diferentes, es importante que establezca un valor de inicialización para asegurarse de que procesan los datos en el mismo orden.

Para especificar el valor de inicialización y procesar los modelos

  1. En la ficha Modelo de minería de datos, haga clic con el botón secundario en la columna del modelo denominado Call Center - LR y seleccione Establecer parámetros de algoritmo.

  2. En la fila correspondiente al parámetro HOLDOUT_SEED, haga clic en la celda vacía que está situada bajo Valor y escriba 1. Haga clic en Aceptar. Repita este paso para cada modelo asociado a la estructura.

    Nota

    El valor de inicialización que elija no es importante siempre y cuando use el mismo para todos los modelos relacionados.

  3. En el menú Modelos de minería de datos, seleccione Procesar estructura de minería de datos y todos los modelos. Haga clic en para implementar el proyecto de minería de datos actualizado en el servidor.

  4. En el cuadro de diálogo Modelo de minería de datos, haga clic en Ejecutar.

  5. Haga clic en Cerrar para cerrar el cuadro de diálogo Progreso del proceso y, a continuación, haga clic de nuevo en Cerrar en el cuadro de diálogo Procesar modelo de minería de datos.

Ahora que ha creado los dos modelos de minería de datos relacionados, explorará los datos para detectar relaciones.