Los descriptivos proporcionan un cálculo eficiente de las estadísticas univariadas y bivariadas y las características de preparación automática de datos en datos a gran escala. Se puede utilizar ampliamente en la creación de perfiles de datos, la exploración de datos y la preparación de datos para los análisis de modelado posteriores.
Las características estadísticas principales incluyen resúmenes estadísticos univariados y bivariados esenciales, estadísticas de orden univariado, creación de información de metadatos a partir de datos sin formato, estadísticas para la visualización de campos individuales y pares de campos, características de preparación de datos y puntuación del interés de los datos y evaluación de la calidad de los datos. Puede dar soporte de forma eficaz a las funciones necesarias para el proceso automático de datos, la interactividad de los usuarios y la obtención de conocimientos de datos para campos individuales o las relaciones entre los pares de campos inclusive con un destino especificado.
Código de ejemplo de Python:
from spss.ml.datapreparation.descriptives import Descriptives
de = Descriptives(). \
setInputFieldsList(["Field1", "Field2"]). \
setTargetFieldList(["Field3"]). \
setTrimBlanks("TRIM_BOTH")
deModel = de.fit(df)
PMML = deModel.toPMML()
statXML = deModel.statXML()
predictions = deModel.transform(df)
predictions.show()
Estrategia de selección descriptiva
Cuando el número de pares de campos es demasiado grande (por ejemplo, mayor que el valor predeterminado de 1000), se utiliza SelectionStrategy para limitar el número de pares para los que se calcularán las estadísticas bivariadas. La estrategia requiere 2 pasos:
- Limitar el número de pares basándose en las estadísticas univariadas.
- Limitar el número de pares basándose en las estadísticas bivariadas de asociación principal.
Observe que el par siempre se incluirá bajo las siguientes condiciones:
- El par consta de un campo de predictor y un campo de destino.
- Se aplica el par de predictores o destinos.
Smart Data Preprocessing
El motor SDP (Smart Data Preprocessing) es un componente analítico para la preparación de datos. Consta de tres módulos separados: análisis de relevancia, análisis de relevancia y redundancia e integración de metadatos inteligentes (SMD).
En función de los datos con campos regulares, campos de listas, y campos de correlación, el análisis de relevancia evalúa las asociaciones de los campos de entrada con los destinos y selecciona un número de campos especificados para su análisis posterior. Mientras tanto, expande los campos de lista y los campos de correlación, y extrae los campos seleccionados en un formato basado en columnas habitual.
Debido a la eficiencia del análisis de relevancia, también se utiliza para reducir el gran número de campos en los datos de gran tamaño a un nivel moderado donde el análisis tradicional puede funcionar.
SmartDataPreprocessingRelevanceAnalysis exporta estas salidas:
- Archivo JSON, que contiene información del modelo
- datos nuevos basados en columnas
- el modelo de datos relacionado
Código de ejemplo de Python:
from spss.ml.datapreparation.smartdatapreprocessing import SmartDataPreprocessingRelevanceAnalysis
sdpRA = SmartDataPreprocessingRelevanceAnalysis(). \
setInputFieldList(["holderage", "vehicleage", "claimamt"]). \
setTargetFieldList(["vehiclegroup", "nclaims"]). \
setMaxNumTarget(3). \
setInvalidPairsThresEnabled(True). \
setRMSSEThresEnabled(True). \
setAbsVariCoefThresEnabled(True). \
setInvalidPairsThreshold(0.7). \
setRMSSEThreshold(0.7). \
setAbsVariCoefThreshold(0.05). \
setMaxNumSelFields(2). \
setConCatRatio(0.3). \
setFilterSelFields(True)
predictions = sdpRA.transform(data)
predictions.show()
Sparse Data Convertor
SDC (Sparse Data Convertor) convierte los campos de datos en campos de lista. Sólo tiene que especificar los campos que desea convertir en campos de lista y, a continuación, SDC fusionará los campos de acuerdo con su nivel de medición. Generará, como máximo, tres tipos de campos de lista: campo de lista continua, campo de lista categórico y campo de mapa.
Código de ejemplo de Python:
from spss.ml.datapreparation.sparsedataconverter import SparseDataConverter
sdc = SparseDataConverter(). \
setInputFieldList(["Age", "Sex", "Marriage", "BP", "Cholesterol", "Na", "K", "Drug"])
predictions = sdc.transform(data)
predictions.show()
En intervalo
Puede utilizar esta función para derivar uno o más campos agrupados nuevos o para obtener las definiciones de intervalo utilizadas para determinar los valores de intervalo.
Código de ejemplo de Python:
from spss.ml.datapreparation.binning.binning import Binning
binDefinition = BinDefinitions(1, False, True, True, [CutPoint(50.0, False)])
binField = BinRequest("integer_field", "integer_bin", binDefinition, None)
params = [binField]
bining = Binning().setBinRequestsParam(params)
outputDF = bining.transform(inputDF)
Intervalos hexagonales
Puede utilizar esta función para calcular y asignar intervalos hexagonales a dos campos.
Código de ejemplo de Python:
from spss.ml.datapreparation.binning.hexbinning import HexBinning
from spss.ml.param.binningsettings import HexBinningSetting
params = [HexBinningSetting("field1_out", "field1", 5, -1.0, 25.0, 5.0),
HexBinningSetting("field2_out", "field2", 5, -1.0, 25.0, 5.0)]
hexBinning = HexBinning().setHexBinRequestsParam(params)
outputDF = hexBinning.transform(inputDF)
ComplexSampling
La función complexSampling selecciona una muestra seudoaleatoria de registros desde un origen de datos.
La función complexSampling realiza un muestreo estratificado de datos de entrada utilizando un muestreo exacto simple y un muestreo proporcional simple. Los campos de estratificación se especifican como entrada y también se deben proporcionar los recuentos de muestreo o el índice de muestreo de cada uno de los estratos que han de muestrear. Opcionalmente, se pueden proporcionar los recuentos de registros para cada estrato para mejorar el rendimiento.
Código de ejemplo de Python:
from spss.ml.datapreparation.sampling.complexsampling import ComplexSampling
from spss.ml.datapreparation.params.sampling import RealStrata, Strata, Stratification
transformer = ComplexSampling(). \
setRandomSeed(123444). \
setRepeatable(True). \
setStratification(Stratification(["real_field"], [
Strata(key=[RealStrata(11.1)], samplingCount=25),
Strata(key=[RealStrata(2.4)], samplingCount=40),
Strata(key=[RealStrata(12.9)], samplingRatio=0.5)])). \
setFrequencyField("frequency_field")
sampled = transformer.transform(unionDF)
CountAndSample
La función countAndSample genera un ejemplo seudoaleatorio que tiene un tamaño aproximadamente igual a la entrada de 'samplingCount'.
El muestreo se realiza llamando al SamplingComponent con un ratio de muestreo que se calcula como 'samplingCount / totalRecords' donde 'totalRecords' ' es el recuento de registros de los datos entrantes.
Código de ejemplo de Python:
from spss.ml.datapreparation.sampling.countandsample import CountAndSample
transformer = CountAndSample().setSamplingCount(20000).setRandomSeed(123)
sampled = transformer.transform(unionDF)
MRSampling
La función mrsampling selecciona una muestra seudoaleatoria de registros de un origen de datos en una proporción de muestreo especificada. El tamaño de la muestra será aproximadamente la proporción especificada del número total de registros sujeto a un máximo opcional. El conjunto de registros y su número total variarán con la semilla aleatoria. Cada registro del origen de datos tiene la misma probabilidad de ser seleccionado.
Código de ejemplo de Python:
from spss.ml.datapreparation.sampling.mrsampling import MRSampling
transformer = MRSampling().setSamplingRatio(0.5).setRandomSeed(123).setDiscard(True)
sampled = transformer.transform(unionDF)
SamplingModel
La función samplingModel selecciona un porcentaje seudoaleatorio de la subsecuencia de registros de entrada definidos por cada N registro para un tamaño N de paso determinado. El tamaño total de la muestra puede estar limitado opcionalmente por un máximo.
Cuando el tamaño de paso es 1, la subsecuencia es la totalidad de la secuencia de registros de entrada. Cuando el índice de muestreo es 1.0, la selección se vuelve determinista, y no seudoaleatoria.
Tenga en cuenta que con los datos distribuidos, la función samplingModel aplica los criterios de selección, independientemente de cada división de datos. El tamaño máximo de la muestra, si existe, se aplica de forma independiente a cada división, y no al origen de datos completo; la subsecuencia se inicia de nuevo en el inicio de cada división.
Código de ejemplo de Python:
from spss.ml.datapreparation.sampling.samplingcomponent import SamplingModel
transformer = SamplingModel().setSamplingRatio(1.0).setSamplingStep(2).setRandomSeed(123).setDiscard(False)
sampled = transformer.transform(unionDF)
SequentialSampling
La función sequentialSampling es similar a la función samplingModel. También selecciona un porcentaje seudoaleatorio de la subsecuencia de registros de entrada definidos por cada N registro para un tamaño N de paso determinado. El tamaño total de la muestra puede estar limitado opcionalmente por un máximo.
Cuando el tamaño de paso es 1, la subsecuencia es la totalidad de la secuencia de registros de entrada. Cuando el índice de muestreo es 1.0, la selección se vuelve determinista, y no seudoaleatoria. La diferencia principal entre sequentialSampling y samplingModel es que con los datos distribuidos, la función sequentialSampling aplica los criterios de selección al origen de datos completo, mientras que la función samplingModel aplica los criterios de selección de forma independiente a cada división de datos.
Código de ejemplo de Python:
from spss.ml.datapreparation.sampling.samplingcomponent import SequentialSampling
transformer = SequentialSampling().setSamplingRatio(1.0).setSamplingStep(2).setRandomSeed(123).setDiscard(False)
sampled = transformer.transform(unionDF)
Tema principal: SPSS algoritmos de análisis predictivo