Crear particiones de los datos en conjuntos de entrenamiento y de pruebas (Analysis Services - Minería de datos)
Separar los datos en conjuntos de entrenamiento y de pruebas es una parte importante de la evaluación de los modelos de minería de datos. Normalmente, al dividir un conjunto de datos en un conjunto de entrenamiento y un conjunto de pruebas, la mayoría de los datos se utiliza para el entrenamiento y una parte menor se emplea para las pruebas. Analysis Services muestrea de forma aleatoria los datos para ayudar a asegurarse de que las partes de las pruebas y del entrenamiento son similares. Mediante el uso de datos similares para aprendizaje y pruebas puede minimizar los efectos de diferencias de datos y comprender mejor las características del modelo.
Una vez procesado un modelo utilizando el conjunto de entrenamiento, se prueba realizando predicciones con el conjunto de pruebas. Dado que los datos del conjunto de pruebas ya contienen valores conocidos para el atributo que desea predecir, es fácil determinar si las suposiciones del modelo son correctas.
Normalmente, la exactitud de la predicción de un modelo de minería de datos se cuantifica mediante la mejora respecto al modelo de predicción o la exactitud de la clasificación. Para obtener más información acerca de cómo usar gráficos de elevación y otros gráficos de precisión, vea Herramientas de gráficos de precisión de modelos (Analysis Services - Minería de datos).
Crear particiones para las estructuras de minería de datos
En SQL Server 2008, se crean particiones de datos en el nivel de la estructura de minería de datos. La información sobre el tamaño de la partición y los datos de cada partición se almacenan con la estructura y todos los modelos basados en ella pueden usar las particiones para entrenamiento y pruebas.
Para definir una partición en una estructura de minería de datos puede realizar una de las acciones siguientes:
Usar el Asistente para minería de datos para crear particiones de una estructura de minería de datos al crear la estructura de minería de datos.
Modificar las propiedades de estructura en la ficha Estructura de minería de datos del Diseñador de minería de datos.
Crear y modificar estructuras mediante programación si utiliza Objetos de administración de análisis (AMO) o el Lenguaje de definición de datos XML (DDL).
Usar el Asistente para minería de datos para crear particiones de una estructura de minería de datos
De forma predeterminada, después de haber definido los orígenes de datos para una estructura de minería de datos, el Asistente para minería de datos dividirá los datos en particiones del 70 por ciento para aprendizaje y del 30 por ciento para pruebas. Ésta es una proporción que se usa a menudo en minería de datos, pero con Analysis Services puede cambiarla para que se ajuste a sus requisitos.
También puede configurar el asistente para establecer un número máximo de casos de entrenamiento o bien, puede combinar los límites para permitir un porcentaje máximo de casos hasta un número máximo especificado de casos. Al especificar ambos un porcentaje máximo de casos y un número máximo de casos, Analysis Services usa el menor de los dos límites como el tamaño del conjunto de pruebas. Por ejemplo, si especifica una exclusión del 30 por ciento para los casos de pruebas, y el número máximo de casos de pruebas como 1000, el tamaño del conjunto de pruebas nunca superará 1000 casos. Esto puede ser útil si desea asegurarse de que el tamaño de su conjunto de pruebas permanece coherente incluso si se agregan más datos de aprendizaje al modelo.
Si usa la misma vista del origen de datos para diferentes estructuras de minería de datos, y desea asegurarse de que se crean particiones de los datos aproximadamente de la misma manera para todas las estructuras de minería de datos y sus modelos, debería especificar el valor de inicialización que se usa para inicializar el muestreo aleatorio. Al especificar un valor para HoldoutSeed, Analysis Services usará dicho valor para comenzar el muestreo. De lo contrario, el muestreo usa un algoritmo hash en nombre de la estructura de minería de datos para crear el valor de inicialización.
[!NOTA]
Si crea una copia de la estructura de minería de datos mediante las instrucciones EXPORT y IMPORT, la nueva estructura de minería de datos tendrá la misma definición de partición porque el proceso de exportación crea un nuevo ID pero usa el mismo nombre. Sin embargo, si dos estructuras de minería de datos usan el mismo origen de datos subyacente pero tienen nombres diferentes, las particiones creadas para cada estructura de minería de datos serán diferentes.
Modificar las propiedades de la estructura
Si crea y procesa una estructura de minería de datos y, a continuación, decide que desea agregar una partición de pruebas, puede modificar las propiedades de la estructura de minería de datos. Para cambiar la manera en que se crean las particiones de los datos, modifique las propiedades siguientes:
Propiedad |
Descripción |
---|---|
HoldoutMaxCases |
Especifica el número máximo de casos que se van a incluir en el conjunto de pruebas. |
HoldoutMaxPercent |
Especifica el número de casos que se van a incluir en el conjunto de pruebas como porcentaje del conjunto de datos completo. Para no tener ningún conjunto de datos, especificaría 0. |
HoldoutSeed |
Especifica un valor entero para usarlo como valor de inicialización al seleccionar los datos para las particiones de forma aleatoria. Este valor no afecta al número de casos en el conjunto de entrenamiento; en su lugar, asegura que se puede repetir la partición. |
Si agrega o cambia una partición a una estructura existente, debe volver a procesar la estructura y todos los modelos asociados. También, debido a que agregar una partición hace que el modelo se entrene en un subconjunto diferente de los datos, podría ver los resultados diferentes de su modelo.
Especificar HOLDOUT mediante programación
Puede crear una estructura de minería de datos con particiones si usa instrucciones DMX, AMO o XML DDL.
DMX En el lenguaje de Extensiones de minería de datos (DMX), la instrucción CREATE MINING STRUCTURE se ha extendido para incluir una cláusula WITH HOLDOUT. Para obtener la sintaxis y los ejemplos de la instrucción CREATE STRUCTURE, vea CREATE MINING STRUCTURE (DMX).
[!NOTA]
La instrucción ALTER MINING STRUCTURE no admite el uso de parámetros de exclusión.
ASSL Puede crear estructuras de minería de datos con particiones nuevas y agregar particiones a las estructuras de minería de datos existentes usando el lenguaje de scripts de Analysis Services (ASSL). Para obtener más información, vea Elemento MiningStructure (ASSL).
AMO También puede ver y modificar las particiones mediante AMO. Para obtener más información, vea Modelo de objetos y conceptos de AMO.
Puede ver información sobre las particiones en una estructura de minería de datos existente consultando el conjunto de filas de esquema de minerías de datos. Puede hacer esto realizando una llamada a DISCOVER ROWSET o puede utilizar una consulta DMX. Para obtener más información, vea Conjuntos de filas de esquema de minería de datos o Consultar los conjuntos de filas de esquema de minería de datos (Analysis Services - Minería de datos).
Usar información de particiones
De forma predeterminada, toda la información sobre las particiones de pruebas y de entrenamiento se almacena en la memoria caché, para poder usar las particiones existentes con el fin de entrenar y probar los nuevos modelos. También puede definir filtros para aplicarlos a las particiones de exclusión en memoria caché con el fin de evaluar el modelo en los subconjuntos de los datos. Para obtener más información, vea Crear filtros para modelos de minería (Analysis Services - Minería de datos).
La manera en que los casos se dividen en particiones depende de la forma en que se configure la exclusión y en los datos que se proporcionen. Si desea determinar el número de casos de cada partición o buscar detalles sobre los casos incluidos en los conjuntos de pruebas y entrenamiento, puede consultar la estructura de modelo creando una consulta de DMX. Por ejemplo, la consulta siguiente devuelve los casos usados en el conjunto de entrenamiento del modelo.
SELECT * from <structure>.CASES WHERE IsTrainingCase()
Para recuperar sólo los casos de prueba y además filtrarlos en una de las columnas de la estructura de minería de datos, use la sintaxis siguiente:
SELECT * from <structure>.CASES WHERE IsTestCase() AND <structure column name> = '<value>'
Limitaciones en el uso de la exclusión
Para usar la exclusión, la propiedad MiningStructureCacheMode de la estructura de minería de datos debe estar establecida en el valor predeterminado, KeepTrainingCases. Si cambia la propiedad CacheMode a ClearAfterProcessing y, a continuación, vuelve a procesar la estructura de minería de datos, se perderá la partición.
No puede usar las particiones con modelos de serie temporales. Por consiguiente, las particiones se deshabilitan si se crea una partición y se especifica que se use el algoritmo de serie temporal de Microsoft para crear el modelo. Las particiones también se deshabilitan si la estructura de minería de datos contiene una columna KEY TIME en el nivel de tabla anidada o caso.
Puede configurar las particiones inadvertidamente con el fin de utilizar el conjunto de datos completo para las pruebas y no utilizar ningún dato para el entrenamiento. Sin embargo, Analysis Services producirá un error para que pueda corregir el problema. Analysis Services también le advierte cuando se procesa la estructura si se ha reservado más de un 50 por ciento de los datos para pruebas.
En la mayoría de los casos, el valor de exclusión predeterminado de 30 proporciona un buen equilibrio entre los datos de pruebas y los de entrenamiento. No es fácil determinar lo grande que debería ser el conjunto de datos para proporcionar entrenamiento suficiente o qué tamaño mínimo debería tener el conjunto de entrenamiento para evitar el ajuste excesivo. Sin embargo, después de haber generado un modelo, puede utilizar la validación cruzada para evaluar el conjunto de datos con respecto a un modelo determinado. Para obtener más información, vea Validación cruzada (Analysis Services - Minería de datos).
Además de las propiedades enumeradas en la tabla anterior, se proporciona una propiedad de sólo lectura, HoldoutActualSize, en AMO y XML DDL. Sin embargo, dado que el tamaño real de una partición no se puede determinar con precisión hasta que se ha procesado la estructura, debería comprobar si se ha procesado el modelo antes de recuperar el valor de la propiedad HoldoutActualSize.