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:

  1. Limitar o número de pares com base nas estatísticas univariadas.
  2. 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:

  1. O par consiste em um campo preditor e em um campo de destino.
  2. 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)