Compartir a través de


Algoritmo de red neuronal de Microsoft (SSAS)

En Microsoft SQL Server 2005 Analysis Services (SSAS), el algoritmo de red neuronal Microsoft crea modelos de minería de datos de clasificación y regresión mediante la generación de una red de neuronas de tipo perceptrón multicapa. De forma similar al algoritmo de árboles de decisión de Microsoft, el algoritmo de red neuronal de Microsoft calcula las probabilidades para cada posible estado del atributo de entrada cuando se da cada estado del atributo de predicción. Posteriormente, puede utilizar estas probabilidades para predecir un resultado del atributo predicho basado en los atributos de entrada.

Ejemplo

El algoritmo de red neuronal de Microsoft es útil para analizar datos de entrada complejos, como los datos de un proceso comercial o de producción, o problemas empresariales para los que hay una cantidad importante de datos de entrenamiento disponibles pero en los que no es fácil derivar reglas mediante otros algoritmos.

Los casos sugeridos para utilizar el algoritmo de red neuronal de Microsoft son:

  • Análisis de comercialización y promoción, como medir el éxito de una promoción por correo directo o una campaña publicitaria en la radio.
  • Predecir los movimientos de las acciones, la fluctuación de la moneda u otra información financiera con gran número de cambios a partir de los datos históricos.
  • Analizar los procesos industriales y de producción.

Cómo funciona el algoritmo

El algoritmo de red neuronal de Microsoft utiliza una red de tipo perceptrón multicapa, que también se denomina red de tipo regla delta de propagación hacia atrás, compuesta por tres capas de neuronas o perceptrones. Estas capas son una capa de entrada, una capa oculta opcional y una capa de salida. En una red de tipo perceptrón multicapa, cada neurona recibe una o más entradas y genera una o más salidas idénticas. Cada salida es una función no lineal simple de la suma de las entradas a la neurona. Las entradas sólo pasan de los nodos de la capa de entrada a los nodos de la capa oculta y, finalmente, a la capa de salida; no existe ninguna conexión entre neuronas de la misma capa. (Las entradas pasan de los nodos de la capa de entrada a los nodos de la capa de salida si no se ha incluido ninguna capa oculta.) Esta documentación no abarca una discusión detallada sobre redes neuronales de tipo perceptrón multicapa.

Los modelos de minería de datos construidos con el algoritmo de red neuronal de Microsoft pueden contener varias redes, en función del número de columnas que se utilizan para la entrada y la predicción, o sólo para la predicción. El número de redes que contiene un único modelo de minería de datos depende del número de estados que contienen las columnas de entrada y las columnas de predicción que utiliza el modelo.

Existen tres tipos de neuronas en una red neuronal creada con el algoritmo de red neuronal de Microsoft:

  • Neuronas de entrada
    Las neuronas de entrada proporcionan valores de atributo de entrada para el modelo de minería de datos. En el caso de los atributos de entrada discretos, las neuronas de entrada suelen representar un único estado del atributo de entrada, incluidos los valores que faltan. Por ejemplo, un atributo de entrada binario produce un nodo de entrada que describe un estado ausente o existente, que indica si existe un valor para ese atributo. Una columna booleana que se utiliza como atributo de entrada genera tres neuronas de entrada: una neurona para un valor verdadero, una neurona para un valor falso y una neurona para un estado ausente o existente. Un atributo de entrada discreto que tiene más de dos estados genera una neurona de entrada por cada estado y una neurona de entrada para un estado ausente o existente. Un atributo de entrada continuo genera dos neuronas de entrada: una neurona para un estado ausente o existente y una neurona para el valor del propio atributo continuo. Las neuronas de entrada proporcionan entradas para una o más neuronas ocultas.
  • Neuronas ocultas
    Las neuronas ocultas reciben entradas de las neuronas de entrada y proporcionan salidas a las neuronas de salida.
  • Neuronas de salida
    Las neuronas de salida representan valores de atributo de predicción para el modelo de minería de datos. En el caso de los atributos de entrada discretos, una neurona de salida suele representar un único estado de predicción para un atributo de predicción, incluidos los valores que faltan. Por ejemplo, un atributo de predicción binario produce un nodo de salida que describe un estado ausente o existente, que indica si existe un valor para ese atributo. Una columna booleana que se utiliza como atributo de predicción genera tres neuronas de salida: una neurona para un valor verdadero, una neurona para un valor falso y una neurona para un estado ausente o existente. Un atributo de predicción discreto que tiene más de dos estados genera una neurona de salida por cada estado y una neurona de salida para un estado ausente o existente. Las columnas de predicción continuas generan dos neuronas de salida: una neurona para un estado ausente o existente y una neurona para el valor de la propia columna continua. Si se generan más de 500 neuronas de salida al revisar el conjunto de columnas de predicción, Analysis Services genera una red nueva en el modelo de minería de datos para representar las neuronas de salida adicionales.

Una neurona recibe varias entradas: en las neuronas de entrada, una neurona recibe entradas de los datos originales; en las neuronas ocultas y de salida, una neurona recibe entradas de la salida de otras neuronas de la red neuronal. Las entradas establecen relaciones entre neuronas; estas relaciones sirven como ruta de análisis para un conjunto específico de escenarios.

Cada entrada tiene un valor asignado denominado peso, que describe la relevancia o importancia de una determinada entrada en la neurona oculta o en la neurona de salida. Cuanto mayor es el peso asignado a una entrada, más relevante o importante es el valor de esa entrada para la neurona que la recibe cuando el algoritmo determina si dicha entrada clasifica correctamente un escenario específico. Observe también que los pesos pueden ser negativos, lo cual implica que la entrada puede desactivar, en lugar de activar, una neurona específica. El valor de la entrada se multiplica por el peso de realce de la entrada de una neurona específica. (En el caso de pesos negativos, el valor de la entrada se multiplica por el valor de no realce del peso.)

Por consiguiente, cada neurona tiene una función no lineal sencilla asignada denominada función de activación, que describe la relevancia o importancia de una neurona determinada para la capa de una red neuronal. Las neuronas ocultas utilizan una función tangente hiperbólica para su función de activación, mientras que las neuronas de salida utilizan una función sigmoidea. Ambas son funciones no lineales continuas que permiten que la red neuronal modele relaciones no lineales entre neuronas de entrada y salida.

Redes neuronales de entrenamiento

Existen varios pasos implicados en el entrenamiento de un modelo de minería de datos que utiliza el algoritmo de red neuronal de Microsoft. Estos pasos están muy influenciados por los valores que se especifican en los parámetros disponibles para el algoritmo.

En primer lugar, el algoritmo evalúa y extrae los datos de entrenamiento del origen de datos. Un porcentaje de los datos de entrenamiento, denominado datos de exclusión, se reserva para medir la precisión de la estructura del modelo resultante. Durante el proceso de entrenamiento, el modelo se evalúa frente a los datos de exclusión después de cada iteración en los datos de entrenamiento. Cuando la precisión del modelo deja de aumentar, el proceso de entrenamiento se detiene. Los valores de los parámetros SAMPLE_SIZE y HOLDOUT_PERCENTAGE se utilizan para determinar el número de escenarios de muestra de los datos de entrenamiento y el número de escenarios que se apartan para los datos de exclusión. El valor del parámetro HOLDOUT_SEED se utiliza para determinar aleatoriamente los escenarios individuales que se apartan para los datos de exclusión.

A continuación, el algoritmo determina el número y la complejidad de las redes que admite el modelo de minería de datos. Si el modelo contiene uno o más atributos que sólo se utilizan para la predicción, el algoritmo crea una única red que representa todos estos atributos. Si el modelo contiene uno o más atributos que se utilizan para la entrada y la predicción, el proveedor de algoritmos construye una red para cada uno de estos atributos. Si el número de atributos de entrada o de predicción es mayor que el valor del parámetro MAXIMUM_INPUT_ATTRIBUTES o el parámetro MAXIMUM_OUTPUT_ATTRIBUTES respectivamente, se utiliza un algoritmo de selección de características para reducir la complejidad de las redes que se incluyen en el modelo de minería de datos. La selección de características reduce el número de atributos de entrada o de predicción a los más relevantes estadísticamente para el modelo.

En el caso de los atributos de entrada y de predicción que tienen valores discretos, cada neurona de entrada o de salida representa respectivamente un único estado. En el caso de los atributos de entrada y de predicción que tienen atributos continuos, cada neurona de entrada o de salida representa respectivamente el intervalo y la distribución de valores del atributo. El número máximo de estados admitidos en cada escenario depende del valor del parámetro de algoritmo MAXIMUM_STATES. Si el número de estados para un atributo específico excede el valor del parámetro de algoritmo MAXIMUM_STATES, se eligen los estados más utilizados o relevantes para dicho atributo, hasta alcanzar el máximo; el resto de los estados se agrupa como valores que faltan para el análisis.

A continuación, el algoritmo utiliza el valor del parámetro HIDDEN_NODE_RATIO al determinar el número inicial de neuronas que se crearán para la capa oculta. Puede establecer HIDDEN_NODE_RATIO en 0 para evitar la creación de una capa oculta en las redes que genera el algoritmo para el modelo de minería de datos y tratar la red neuronal como una regresión logística.

El proveedor de algoritmos evalúa iterativamente el peso de todas las entradas de la red simultáneamente, tomando el conjunto de datos de entrenamiento reservado anteriormente y comparando el valor real conocido de cada escenario de los datos de exclusión con la predicción de la red, en un proceso conocido como aprendizaje por lotes. Una vez que el algoritmo ha evaluado el conjunto completo de los datos de entrenamiento, revisa el valor predicho y real de cada neurona. El algoritmo calcula el grado de error, si lo hay, y ajusta los pesos asociados con las entradas de esa neurona, trabajando hacia atrás desde las neuronas de salida a las de entrada en un proceso conocido como propagación hacia atrás. A continuación, el algoritmo repite el proceso en todo el conjunto de datos de entrenamiento. Dado que el algoritmo puede admitir múltiples pesos y neuronas de salida, el algoritmo de gradiente conjugado se utiliza para guiar el proceso de entrenamiento en la asignación y evaluación de los pesos de las entradas. Esta documentación no abarca una discusión sobre el algoritmo de gradiente conjugado.

Usar el algoritmo

El modelo de red neuronal debe contener una columna de clave, una o más columnas de entrada y una o más columnas de predicción.

El algoritmo de red neuronal de Microsoft admite los tipos de contenido de columna de entrada, tipos de contenido de columna de predicción e indicadores de modelado específicos que aparecen en la siguiente tabla.

Tipos de contenido de columna de entrada

Continuous, Cyclical, Discrete, Discretized, Key, Table y Ordered

Tipos de contenido de columna de predicción

Continuous, Cyclical, Discrete, Discretized y Ordered

Indicadores de modelado

MODEL_EXISTENCE_ONLY y NOT NULL

Indicadores de distribución

Normal, Uniform y Log Normal

Todos los algoritmos de Microsoft son compatibles con un conjunto común de funciones. Sin embargo, el algoritmo de red neuronal de Microsoft admite algunas funciones adicionales que aparecen en la siguiente tabla.

IsDescendant

PredictStdev

PredictAdjustedProbability

PredictSupport

PredictHistogram

PredictVariance

PredictProbability

 

Para consultar una lista de las funciones comunes a todos los algoritmos de Microsoft, vea Algoritmos de minería de datos. Para obtener más información acerca del modo de utilizar estas funciones, vea Referencia de funciones de Extensiones de minería de datos (DMX).

Los modelos creados mediante el algoritmo de red neuronal de Microsoft no son compatibles con la obtención de detalles ni con las dimensiones de minería de datos, porque la estructura de nodos del modelo de minería de datos no siempre se corresponde directamente con los datos subyacentes.

El algoritmo de red neuronal de Microsoft admite varios parámetros que afectan al rendimiento y la precisión del modelo de minería de datos resultante. En la siguiente tabla se describen estos parámetros.

Parámetro Descripción

HIDDEN_NODE_RATIO

Especifica la proporción de neuronas ocultas por neuronas de entrada y de salida. La siguiente fórmula determina el número inicial de neuronas de la capa oculta:

HIDDEN_NODE_RATIO * SQRT(Total input neurons * Total output neurons)

El valor predeterminado es 4,0.

HOLDOUT_PERCENTAGE

Especifica el porcentaje de escenarios de los datos de entrenamiento utilizados para calcular el error de exclusión, que se utiliza como parte de los criterios de detención durante el entrenamiento del modelo de minería de datos.

El valor predeterminado es 30.

HOLDOUT_SEED

Especifica un número que se utiliza para inicializar el generador pseudoaleatorio cuando el algoritmo determina aleatoriamente los datos de exclusión. Si este parámetro se establece en 0, el algoritmo genera la inicialización basada en el nombre del modelo de minería de datos, para garantizar que el contenido del modelo permanece intacto al volver a realizar el proceso.

El valor predeterminado es 0.

MAXIMUM_INPUT_ATTRIBUTES

Determina el número máximo de atributos de entrada que se pueden proporcionar al algoritmo antes de emplear la selección de características. La función de selección de atributos de entrada se deshabilita cuando este valor se establece en 0.

El valor predeterminado es 255.

MAXIMUM_OUTPUT_ATTRIBUTES

Determina el número máximo de atributos de salida que se pueden proporcionar al algoritmo antes de emplear la selección de características. La característica de selección de atributos de salida se deshabilita cuando este valor se establece en 0.

El valor predeterminado es 255.

MAXIMUM_STATES

Especifica el número máximo de estados discretos por atributo que admite el algoritmo. Si en número de estados de un atributo específico es mayor que el número especificado para este parámetro, el algoritmo utiliza los estados más frecuentes de este atributo y trata al resto como estados que faltan.

El valor predeterminado es 100.

SAMPLE_SIZE

Especifica el número de escenarios que se van a utilizar para realizar el entrenamiento del modelo. El algoritmo utiliza el valor menor entre este número o el porcentaje del total de escenarios que no están incluidos en los datos de exclusión, según se especifica en el parámetro HOLDOUT_PERCENTAGE.

En otras palabras, si HOLDOUT_PERCENTAGE está establecido en 30, el algoritmo utilizará el valor de este parámetro o un valor igual al 70 por ciento del número total de escenarios, según cuál sea menor.

El valor predeterminado es 10.000.

Vea también

Conceptos

Algoritmos de minería de datos
Selección de características en minería de datos
Usar las herramientas de minería de datos
Ver un modelo de minería de datos con el Visor de redes neuronales de Microsoft

Otros recursos

CREATE MINING MODEL (DMX)

Ayuda e información

Obtener ayuda sobre SQL Server 2005