Nó de transformação de extensão
Com o nó Extension Transform, você pode obter dados de um fluxo SPSS Modeler e aplicar transformações aos dados usando scripts escritos em R, Python ou Python for Spark.
Quando os dados são modificados, eles são retornados ao fluxo para processamento adicional, construção de modelo e pontuação de modelo. O nó Extension Transform possibilita a transformação de dados por meio de algoritmos escritos em uma das linguagens, e você pode usar o nó para desenvolver métodos de transformação de dados adaptados a um problema específico.
Depois de incluir o nó na sua tela, dê um clique duplo no nó para abrir suas propriedades.
guia Sintaxe
- Converter campos de sinalização. Especifica como os campos de sinalização são tratados. Há duas opções: Sequências para fator, Números inteiros e reais
para dobro e Valores lógicos (True,
False). Se você selecionar Valores lógicos (True,
False) os valores originais dos campos de sinalização serão perdidos. Por exemplo, se um campo tem valores
MaleeFemale, estes são alterados paraTrueeFalse. - Converter os valores ausentes para o valor R 'não disponível' (NA). Quando selecionados, quaisquer valores ausentes são convertidos para o RNAvalor. O valorNAé usado por R para identificar valores ausentes. Algumas funções R que você usa podem ter um argumento que pode controlar como a função se comporta quando os dados contémNA. Por exemplo, a função pode permitir que você opte por excluir automaticamente registros que contenhamNA. Se essa opção não for selecionada, quaisquer valores ausentes são passados para R inalterados, e podem causar erros quando seu script R for executado.
- Converter campos de data/hora em classes de R com controle especial para fusos horários
Quando selecionado, as variáveis com os formatos de hora ou data/hora são convertidos em objetos de data/hora de R. Você deve selecionar uma das seguintes opções:
- R POSIXct. Variáveis com formatos date ou datetime são convertidos em RPOSIXct.
- R POSIXlt (lista). Variáveis com formatos date ou datetime são convertidos em RPOSIXlt.
Nota: Os formatos POSIX são opções avançadas. Use essas opções somente se o script R especificar que os campos data/hora sejam tratados de uma forma que requeira esses formatos. Os formatos POSIX não se aplicam a variáveis com formatos de hora.
Guia de saída de console
A guia Saída do console contém qualquer saída recebida quando o script R ou Python é executado (por exemplo, se estiver usando um script R, ela mostra a saída recebida do console R quando o script R no campo Sintaxe do R na guia Sintaxe é executado). Essa saída pode incluir mensagens de erro R ou Python ou avisos que são produzidos quando o script R ou script Python é executado. A saída pode ser usada, principalmente, para depurar o script. A guia Saída de console também contém o script a partir do campo R Sintaxe ou Sintaxe Python.
Toda vez que o script Extension Transform é executado, o conteúdo da guia Console Output (Saída do console ) é substituído pela saída recebida do console R ou Python. Não é possível editar a saída.
Transformações da teoria de controle, processamento de sinais e mapeamentos de características
SPSS Modeler suporta pré-processamento avançado de dados, análise de séries temporais e engenharia de recursos por meio de transformações da teoria de controle, filtros de processamento de sinais e mapeamentos de recursos. Essas técnicas são essenciais para preparar dados, extrair padrões significativos dos sinais e criar recursos informativos.
Para ver exemplos dessas técnicas em um fluxo de trabalho do SPSS Modeler, você pode baixar o exemplo extension-transform-node.zip. Ele contém vários arquivos de fluxo que você pode importar para o SPSS Modeler. Para obter mais informações sobre importação, consulte Importando um fluxo do SPSS Modeler. Em seguida, abra as propriedades do nó Extension Transform para ver a sintaxe de exemplo.
Transformações simples
Transformações simples são transformações matemáticas que modificam distribuições de dados, reduzem a assimetria, estabilizam a variância e preparam características para modelagem. Essas transformações são etapas fundamentais do pré-processamento.
- Transformação logarítmica (logarítmica)
- Descrição
Uma transformação logarítmica aplica um logaritmo natural (ln) ou logaritmo de base 10 aos valores dos dados. Essa transformação pode ser útil para dados com distorção à direita e valores positivos.
- Cenário de exemplo
Um varejista analisa o comportamento de compra dos clientes em sua plataforma. Eles percebem que os valores dos pedidos são fortemente distorcidos para a direita, com a maioria dos pedidos entre US$ 20 e US$ 100, mas alguns pedidos excedem US$ 10.000. Para entender melhor os padrões de compra e criar modelos preditivos, eles aplicam transformação logarítmica aos dados do valor dos pedidos. Essa transformação normaliza a distribuição, facilitando a identificação de padrões significativos e reduzindo a influência de pedidos de valor extremamente alto em sua análise.
- transformação raiz quadrada
- Descrição
Uma transformação de raiz quadrada calcula a raiz quadrada dos valores dos dados. Essa transformação é adequada para dados de contagem e novidade moderada.
- Cenário de exemplo
Uma fábrica controla o número de defeitos encontrados durante as inspeções diárias. O número de defeitos segue uma distribuição do tipo Poisson com assimetria moderada à direita, variando de 0 a 50 defeitos por dia. Ao aplicar a transformação da raiz quadrada aos dados da contagem de defeitos, a variância é estabilizada, o que cria uma distribuição mais simétrica. Essa distribuição permite gráficos de controle mais precisos e uma melhor detecção de padrões incomuns que possam indicar problemas no processo.
- Transformação recíproca (inversa)
- Descrição
Uma transformação recíproca calcula 1/x para cada valor. É útil para dados com relações hiperbólicas ou quando valores menores precisam de mais peso.
- Cenário de exemplo
Uma empresa de entregas analisa os tempos de entrega da sua frota de veículos. Em vez de trabalhar com o tempo de entrega (que pode variar muito), eles transformam os dados usando uma transformação recíproca para criar uma métrica de “taxa de entrega”. Essa transformação permite comparar a eficiência entre diferentes rotas e ajudar a identificar gargalos onde pequenas melhorias no tempo podem gerar ganhos significativos na produtividade.
- Power transformação
- Descrição
Uma transformação de potência eleva os valores a uma potência especificada (x^p). Essa transformação pode aumentar ou diminuir a assimetria, dependendo do valor da potência.
- Cenário de exemplo
Um cientista está pesquisando a relação entre os níveis de poluição e a distância dos locais industriais. A relação parece seguir uma lei de potência, em que a poluição diminui rapidamente perto da fonte, mas de forma mais gradual a distâncias maiores. Ao aplicar a transformação de potência com expoentes cuidadosamente selecionados às medições de distância, o cientista lineariza a relação, tornando-a adequada para a análise de regressão padrão e mais fácil de interpretar a taxa de decaimento da poluição.
- Padronização (normalização)
- Descrição
Essa transformação redimensiona os recursos para que tenham propriedades estatísticas específicas.
- Cenário de exemplo
Um modelo de segmentação de clientes para uma empresa de varejo utiliza características com escalas muito diferentes: renda anual (R$ 20.000 a R$ 500.000), idade (18 a 80 anos) e número de compras (0 a 200). Sem padronização, algoritmos baseados em distância, como o agrupamento k-means, seriam dominados pela característica renda devido à sua ampla faixa numérica. Quando a padronização é usada para transformar cada característica, todas as características contribuem igualmente para o algoritmo de agrupamento. Essa transformação permite que o modelo identifique segmentos de clientes significativos com base nos padrões combinados de todos os recursos, em vez de ser distorcido por diferenças de escala.
- Winsorização (recorte)
- Descrição
Essa transformação limita os valores extremos, restringindo-os a percentis especificados (por exemplo, o 1º e o 99º percentis). Você pode usar essa transformação para reduzir o impacto dos outliers sem remover pontos de dados.
- Cenário de exemplo
Um analista financeiro examina diariamente os retornos das ações para otimizar a carteira. O conjunto de dados inclui vários valores extremos decorrentes de quedas do mercado e quedas repentinas que podem distorcer os cálculos de risco. Em vez de remover esses pontos de dados, o analista aplica a winsorização no 1º e no 99º percentis, limitando os valores extremos e preservando o tamanho geral da amostra. Essa abordagem fornece estimativas mais robustas de volatilidade e correlação para a construção de carteiras.
- Polinomial (termos de interação)
- Descrição
Você pode usar termos polinomiais/de interação para criar novos recursos, elevando os recursos existentes a potências ou multiplicando-os entre si. Você pode usar essa transformação para capturar relações não lineares e interações de características.
- Cenário de exemplo
Uma empresa de marketing deseja saber como os gastos com publicidade em diferentes canais (TV, digital, impressos) afetam as vendas. Eles suspeitam que os canais sejam sinérgicos. Por exemplo, os anúncios televisivos podem ampliar a eficácia das campanhas digitais. Ao criar termos de interação (TV × Digital, TV × Impresso, Digital × Impresso) e termos polinomiais (TV², Digital²), eles querem capturar essas relações não lineares e efeitos de interação, o que melhora a precisão preditiva do seu modelo de marketing mix.
- Bibliotecas para transformações simples
Todas essas transformações simples utilizam as seguintes bibliotecas R e Python.
- Python
numpyscipysklearn.preprocessingpandas
- R
- Funções R básicas,
scale() poly()DescTools::Winsorize()
- Funções R básicas,
Filtros da teoria de controle
Você pode usar técnicas avançadas para analisar dados de séries temporais, filtrar ruídos, extrair componentes de frequência e modelar sistemas dinâmicos. Esses métodos são úteis para dados de sensores, séries temporais financeiras e sistemas de controle.
- Filtro de Kalman
- Descrição
Um filtro de Kalman é um algoritmo recursivo ótimo que estima o estado de um sistema dinâmico a partir de medições ruidosas. Ele combina previsões de um modelo matemático com observações ruidosas para produzir estimativas ótimas.
- Cenário de exemplo
Está sendo desenvolvido um sistema de navegação para veículos, que utilizará sensores GPS para rastrear a posição. No entanto, os sinais de GPS são ruidosos e, ocasionalmente, indisponíveis. O sistema de navegação pode usar um filtro Kalman que combina medições de GPS com previsões do modelo de movimento do veículo (com base na velocidade e no ângulo de direção). O filtro pondera de forma otimizada essas fontes de informação, fornecendo estimativas de posição precisas e suaves, mesmo quando os sinais de GPS estão degradados, e pode manter estimativas de posição razoáveis durante breves interrupções do GPS.
- Bibliotecas
- Python
filterpybiblioteca (implementações abrangentes do filtro de Kalman)
- R
KFAS(Filtro de Kalman e suavizador para modelos de espaço de estado da família exponencial)dlm(Modelos Lineares Dinâmicos)
- Filtro passa-baixas
- Descrição
Um filtro passa-baixa é um filtro digital que permite a passagem seletiva de determinadas faixas de baixa frequência, atenuando as altas frequências. Você pode usá-lo para redução de ruído e condicionamento de sinal.
- Cenário de exemplo
Um técnico analisa os sinais do eletrocardiograma (ECG) dos pacientes para detectar anomalias cardíacas. Os sinais brutos do ECG contêm ruído de alta frequência proveniente de movimentos musculares, interferência elétrica e artefatos do sensor que obscurecem o ritmo cardíaco subjacente. Ao aplicar um filtro Butterworth passa-baixa com uma frequência de corte de 40 Hz, o técnico remove o ruído de alta frequência, preservando as formas de onda cardíacas essenciais, o que permite uma medição precisa da frequência cardíaca e a detecção de arritmias.
- Bibliotecas
- Python
scipy.signal(butter, cheby1, cheby2, bessel, funções elípticas)
- R
signalpacote
- Filtro passa-altas
- Descrição
Um filtro passa-alta é um filtro digital que permite seletivamente a passagem de determinadas faixas de alta frequência, enquanto atenua as faixas de baixa frequência abaixo de um limite. Você pode usá-lo para redução de ruído e condicionamento de sinal.
- Cenário de exemplo
Um engenheiro de áudio processa gravações que contêm ruídos de baixa frequência provenientes de sistemas de ar condicionado e tráfego. Esses componentes de baixa frequência (abaixo de 80 Hz) não contribuem para a inteligibilidade da fala, mas consomem faixa dinâmica e podem causar distorção. Ao aplicar um filtro passa-alta com um corte de 80 Hz, o engenheiro remove o ruído, preservando toda a clareza da fala humana (normalmente 100-8.000 Hz). O uso do filtro proporciona gravações mais limpas e com som mais profissional.
- Bibliotecas
- Python
scipy.signal(butter, cheby1, cheby2, bessel, funções elípticas)
- R
signalpacote
- Filtro passa-banda
- Descrição
Um filtro passa-banda é um filtro digital que permite a passagem seletiva de determinadas faixas de frequência, atenuando as frequências fora dessa faixa. Você pode usá-lo para redução de ruído e condicionamento de sinal.
- Cenário de exemplo
Um sismólogo analisa dados sísmicos para distinguir entre diferentes tipos de ondas sísmicas. As ondas primárias (ondas P) ocorrem normalmente na faixa de 1-5 Hz. As ondas superficiais aparecem em frequências mais baixas ( 0.1-1 Hz). O sismólogo pode aplicar um filtro passa-banda centrado em 1-5 Hz para isolar as chegadas das ondas P do sismógrafo complexo.
- Bibliotecas
- Python
scipy.signal(butter, cheby1, cheby2, bessel, funções elípticas)
- R
signalpacote
- Suavização exponencial (média móvel)
- Descrição
Este filtro utiliza técnicas de suavização em séries temporais para reduzir o ruído, preservando as tendências subjacentes. Utiliza médias ponderadas para dar mais importância às observações recentes.
- Cenário de exemplo
Uma rede de varejo faz previsões semanais de vendas para o planejamento de estoque. Os dados históricos de vendas mostram tanto as tendências subjacentes quanto a volatilidade significativa de semana para semana devido a promoções, clima e fatores aleatórios. Eles aplicam suavização exponencial com α= 0.3, o que dá mais peso às observações recentes, ao mesmo tempo em que suaviza as flutuações de curto prazo. Essa suavização produz previsões estáveis que capturam tendências genuínas sem reagir exageradamente a picos temporários.
- Bibliotecas
- Python
scipy.signal(butter, cheby1, cheby2, bessel, funções elípticas)
- R
signalpacote
- Transformações wavelet
- Descrição
As transformações wavelet utilizam técnicas de análise multiresolução para decompor sinais em representações tempo-frequência, utilizando wavelets (funções localizadas semelhantes a ondas). Ele também fornece informações sobre tempo e frequência.
- Cenário de exemplo
Um técnico analisa exames de ressonância magnética para detectar anomalias cerebrais. As imagens contêm características importantes em várias escalas, por exemplo, estruturas anatômicas em grande escala e variações teciduais em escala fina. O técnico pode usar uma transformação wavelet discreta com wavelets de Daubechies para decompor as imagens em vários níveis de resolução. Essa análise em múltiplas escalas revela padrões sutis que podem passar despercebidos na análise espacial padrão.
- Bibliotecas
- Python
pywtBiblioteca ( PyWavelets )
- R
waveletspacotewaveslim
- Modelos de espaço de estado
- Descrição
Um modelo de espaço de estado é uma estrutura matemática que representa sistemas dinâmicos como conjuntos de variáveis de entrada, saída e estado relacionadas por equações diferenciais ou diferenciais. Ele fornece uma abordagem unificada para análise e controle de séries temporais.
- Cenário de exemplo
Um modelo econômico da dinâmica do PIB de um país utiliza múltiplos fatores inter-relacionados: consumo, investimento, gastos governamentais e exportações líquidas. Esses componentes evoluem ao longo do tempo e influenciam-se mutuamente de maneiras complexas. Ao formular o problema como um modelo de espaço de estado, ele pode representar a situação econômica do país e sua evolução, ao mesmo tempo em que leva em consideração os erros de medição nos indicadores econômicos observados. Os modelos permitem previsões sofisticadas que lidam adequadamente com dados ausentes e fornecem quantificação da incerteza.
- Bibliotecas
- Python
statsmodels.tsa.statespaceMódulo
- R
KFASdlmpacotes
Processamento de Sinais
Você pode usar técnicas de processamento de sinal para detectar ou identificar componentes de interesse em um sinal medido.
- Transformação rápida de Fourier (FFT)
- Descrição
Você pode usar uma Transformada Rápida de Fourier para converter sinais do domínio do tempo em representações do domínio da frequência, o que pode revelar componentes periódicos e características espectrais.
- Cenário de exemplo
Um fabricante deseja diagnosticar problemas em máquinas industriais analisando dados de sensores de vibração. Diferentes tipos de falhas produzem padrões de vibração característicos em frequências específicas. Ao aplicar a FFT aos dados de vibração da série temporal, eles podem transformá-los no domínio da frequência, que mostra a amplitude das vibrações em cada frequência. Picos em frequências específicas indicam tipos específicos de falhas, que o fabricante pode usar para direcionar a manutenção antes que ocorram falhas catastróficas.
- Bibliotecas
- Python
numpy.fftMóduloscipy.fft
- R
fft()função (base R),spectrum()
Mapeamentos e transformações de recursos
Você também pode usar técnicas avançadas de engenharia de recursos que criam recursos informativos, capturam relações complexas e melhoram o desempenho do modelo.
- transformação Box-Cox
- Descrição
Uma família de transformações de potência que determina automaticamente o parâmetro de transformação ideal (lambda) para tornar os dados mais normalmente distribuídos e estabilizar a variância.
- Cenário de exemplo
Um analista de mercado constrói um modelo de regressão para prever os preços das casas com base em características como metragem quadrada, número de quartos e tamanho do terreno. A distribuição dos preços é assimétrica para a direita e apresenta variância não constante. O analista aplica uma transformação Box- Cox para determinar automaticamente o parâmetro lambda ideal (λ= 0.23 ) que melhor normaliza a distribuição e estabiliza a variância. A transformação melhora as premissas do modelo de regressão e a precisão da previsão.
- Bibliotecas
- Python
scipy.stats.boxcox()sklearn.preprocessing.PowerTransformer
- R
boxcox()do pacote MASScar::powerTransform()
- Mapeamento de classificação e quantil
- Descrição
Transforma os dados com base na ordem de classificação ou posição quantílica. O mapeamento quantílico transforma os dados para torná-los mais uniformes ou adequados a uma distribuição normal com base em quantis. O mapeamento de classificação transforma os dados em uma escala padronizada usando a classificação percentual.
- Cenário de exemplo
Um modelo de pontuação de crédito combina vários indicadores de risco com diferentes distribuições: alguns são normalmente distribuídos, outros são altamente assimétricos e alguns têm caudas pesadas. O modelo aplica uma transformação quantílica a cada indicador para criar uma pontuação composta robusta. Essa abordagem não é sensível a valores atípicos e garante que cada indicador contribua igualmente para a pontuação final, independentemente de sua escala original ou forma de distribuição.
- Bibliotecas
- Python
scipy.stats.rankdata()pandas.qcut()sklearn.preprocessing.QuantileTransformer
- R
rank()quantile()cut()
- Interação de recursos
- Descrição
Você pode usar a interação de recursos para criar novos recursos combinando recursos existentes por meio de operações matemáticas. Você pode usar interações de características para capturar efeitos sinérgicos e relações não lineares que características individuais não conseguem representar.
- Cenário de exemplo
Uma seguradora de automóveis cria um modelo para prever os valores dos sinistros. Possuem características relacionadas à idade do motorista, valor do veículo e quilometragem anual. A análise revela que a relação entre esses fatores e as reclamações não é simplesmente aditiva. Por exemplo, uma quilometragem elevada é particularmente arriscada para os condutores jovens, mas é menos arriscada para os condutores experientes. Ao criar recursos de interação (Idade × Quilometragem, Idade × Valor do Veículo, Quilometragem × Valor do Veículo), o modelo captura esses efeitos sinérgicos, o que melhora a precisão da previsão e permite uma precificação baseada em risco mais detalhada.
- Bibliotecas
- Python
sklearn.preprocessing.PolynomialFeatures- Funções customizadas
- R
- Interface da fórmula ( x1:x2 )
poly()- Funções customizadas
- Mapeamentos não lineares personalizados
- Descrição
Você pode definir transformações que aplicam funções matemáticas personalizadas ou transformações específicas do domínio aos recursos.
- Cenário de exemplo
Uma empresa de telecomunicações deseja analisar os padrões dos clientes para prever a rotatividade. Isso mostra uma relação não linear entre a rotatividade e os clientes que entram em contato com o atendimento ao cliente. Os clientes que entraram em contato com o atendimento ao cliente recentemente apresentam um alto risco de cancelamento. Os clientes que entraram em contato com o atendimento ao cliente recentemente apresentam baixo risco, pois é provável que os problemas tenham sido resolvidos, enquanto aqueles que não entram em contato há meses apresentam um risco crescente. A empresa cria uma transformação personalizada em forma de U que captura essa relação complexa, o que melhora as previsões de rotatividade.
- Bibliotecas
Implementado por meio de scripts e funções personalizados