Algoritmos de preparação de dados de análise preditiva SPSS em blocos de notas
Descritivos fornecem cálculo eficiente de estatísticas bivariadas e univariadas e recursos de preparação de dados automáticos em dados de larga escala. Eles podem ser usados amplamente na definição de perfis de dados, exploração de dados e preparação de dados para análises de modelagem subsequentes.
Os principais recursos estatísticos incluem resumos estatísticos essenciais bivariados e univariados, estatísticas de pedidos univariadas, criação de informações de metadados de dados brutos, estatísticas para visualização de campos únicos e pares de campos, recursos de preparação de dados, escore de interesse em dados e avaliação de qualidade de dados. Eles podem suportar perfeitamente a funcionalidade necessária para processamento de dados automatizado, interatividade de usuário e obtenção de insights de dados para campos únicos ou relacionamentos entre os pares de campos, inclusive com um destino especificado.
Exemplo de código 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()
Estratégia de Seleção de Descritivos
Quando o número de pares de campo é muito grande (por exemplo, maior que o padrão de 1000), SelectionStrategy é usado para limitar o número de pares para os quais as estatísticas bivariadas serão calculadas. A estratégia envolve duas etapas:
- Limitar o número de pares com base nas estatísticas univariadas.
- Limitar o número de pares com base nas estatísticas bivariadas de associação principal.
Observe que o par será sempre incluído sob as seguintes condições:
- O par consiste em um campo preditor e em um campo de destino.
- O par de preditores ou destinos é executado.
Pré-processamento de Dados Inteligentes
O mecanismo Pré-processamento de Dados Inteligentes (SDP) é um componente analítico de preparação de dados. Ele consiste em três módulos separados: análise de relevância, análise de relevância e redundância e integração de metadados inteligentes (SMD).
Considerando os dados com campos regulares, campos de lista e campos de mapa, a análise de relevância avalia as associações de campos de entrada com destinos e seleciona um número especificado de campos para análise subsequente. Entretanto, ela expande campos de lista e campos de mapa e extrai os campos selecionados em formato regular baseado em coluna.
Devido à eficiência de análise de relevância, também é usado para reduzir o número grande de campos em dados amplos para um nível moderado no qual a análise de dados tradicional possa trabalhar.
SmartDataPreprocessingRelevanceAnalysis exporta estas saídas:
- arquivo JSON contendo informações de modelo
- dados novos baseados em coluna
- modelo de dados relacionado
Exemplo de código 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()
Conversor de Dados Esparsos
O Conversor de Dados Esparsos (SDC) converte campos de dados regulares em campos de lista. Você só precisa especificar os campos que deseja converter em campos de lista e o SDC mesclará os campos de acordo com seu nível de medição. Ele vai gerar, no máximo, três tipos de campos de lista: campo de lista contínuo, campo de lista categórico e campo de mapa.
Exemplo de código 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()
Categorização
É possível usar essa função para derivar um ou mais novos campos categorizados ou para obter as definições de categorias usadas para determinar os valores de categorias...
Exemplo de código 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)
Categorização Hexa
É possível usar esta função para calcular e designar categorias hexagonais a dois campos.
Exemplo de código 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)
Amostragem Complexa
A função complexSampling seleciona uma amostra pseudoaleatória de registros de uma origem de dados.
A função complexSampling realiza amostragem estratificada de dados recebidos usando amostragem exata simples e amostragem proporcional simples. Os campos de estratificação são especificados como entrada e as contagens de amostragem ou proporções de amostragem de cada estrato a ser amostrado também devem ser fornecidas. Opcionalmente, as contagens de registro para cada estrato podem ser fornecidas para melhorar o desempenho.
Exemplo de código 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)
Contagem e Amostra
A função countAndSample produz uma amostra pseudoaleatória de tamanho aproximadamente igual à entrada 'samplingCount'.
A amostragem é realizada chamando o SamplingComponent com uma taxa de amostragem que é calculada como 'samplingCount / totalRecords', em que 'totalRecords' é a contagem de registros dos dados recebidos.
Exemplo de código Python:
from spss.ml.datapreparation.sampling.countandsample import CountAndSample
transformer = CountAndSample().setSamplingCount(20000).setRandomSeed(123)
sampled = transformer.transform(unionDF)
Amostragem MR
A função mrsampling seleciona uma amostra pseudoaleatória de registros de uma origem de dados em uma proporção de amostragem especificada. O tamanho da amostra será aproximadamente a proporção especificada do número total de registros sujeito a um máximo opcional. O conjunto de registros e seu número total vai variar com a semente aleatória. Cada registro na origem de dados tem a mesma probabilidade de ser selecionado.
Exemplo de código Python:
from spss.ml.datapreparation.sampling.mrsampling import MRSampling
transformer = MRSampling().setSamplingRatio(0.5).setRandomSeed(123).setDiscard(True)
sampled = transformer.transform(unionDF)
Modelo de Amostragem
A função samplingModel seleciona uma porcentagem pseudoaleatória da sequência de registros de entrada definida por cada enésimo registro de um determinado tamanho de etapa N. O tamanho total da amostra pode ser opcionalmente limitado a um máximo.
Quando o tamanho da etapa é 1, a subsequência é a sequência inteira dos registros de entrada. Quando a proporção de amostragem é 1,0, a seleção torna-se determinística, não pseudoaleatória.
Observe que com dados distribuídos, a função samplingModel aplica os critérios de seleção independentemente a cada divisão de dados. O tamanho máximo da amostra, se houver, aplica-se independentemente a cada divisão, e não à origem de dados inteira; a subsequência começa do zero no início de cada divisão.
Exemplo de código Python:
from spss.ml.datapreparation.sampling.samplingcomponent import SamplingModel
transformer = SamplingModel().setSamplingRatio(1.0).setSamplingStep(2).setRandomSeed(123).setDiscard(False)
sampled = transformer.transform(unionDF)
Amostragem Sequencial
A função sequentialSampling é semelhante à função samplingModel. Ela também seleciona uma porcentagem pseudoaleatória da subsequência de registros de entrada definidos por cada registro de N-ésimo para o tamanho N de uma determinada etapa. O tamanho total da amostra pode ser opcionalmente limitado a um máximo.
Quando o tamanho da etapa é 1, a subsequência é a sequência inteira dos registros de entrada. Quando a proporção de amostragem é 1,0, a seleção torna-se determinística, não pseudoaleatória. A principal diferença entre sequentialSampling e samplingModel é que com dados distribuídos, a função sequentialSampling aplica os critérios de seleção à origem de dados inteira, enquanto a função samplingModel aplica os critérios de seleção independentemente a cada divisão de dados.
Exemplo de código Python:
from spss.ml.datapreparation.sampling.samplingcomponent import SequentialSampling
transformer = SequentialSampling().setSamplingRatio(1.0).setSamplingStep(2).setRandomSeed(123).setDiscard(False)
sampled = transformer.transform(unionDF)