확장 변환 노드

확장 변환 노드를 사용하면 SPSS Modeler 흐름에서 데이터를 가져와 R, Python 또는 Spark용 Python 작성된 스크립트를 사용하여 데이터에 변환을 적용할 수 있습니다.

데이터가 수정되면 추가 처리, 모델 작성 및 모델 스코어링을 위해 플로우로 리턴됩니다. 확장 변환 노드를 사용하면 언어 중 하나로 작성된 알고리즘을 사용하여 데이터를 변환할 수 있으며, 이 노드를 사용하여 특정 문제에 맞는 데이터 변환 방법을 개발할 수 있습니다.

캔버스에 노드를 추가한 후 노드를 두 번 클릭하여 해당 특성을 여십시오.

명령문 탭

구문 유형( R, Python 또는 Spark용Python)을 선택합니다. 그런 다음 데이터 변환을 위한 사용자 정의 스크립트를 입력하거나 붙여넣으십시오. 구문이 준비되면 노드를 실행할 수 있습니다. R 구문에 대해 다음 옵션을 사용할 수 있습니다.
  • 플래그 필드 변환. 플래그 필드를 처리하는 방법을 지정합니다. 두 가지 옵션이 있습니다. 인수에 대한 문자열, 두 배에 대한 정수 및 실수논리 값 (True, False)입니다. 논리 값 (True, False) 을 선택하면 플래그 필드의 원래 값이 유실됩니다. 예를 들어, 필드에 MaleFemale값이 있는 경우 이 값은 TrueFalse로 변경됩니다.
  • 결측값을 R '사용할 수 없음' 값 (NA) 으로 변환합니다. 이 옵션을 선택하면 결측값이 R로 변환됩니다.NA값. 값NAR에서 결측값을 식별하는 데 사용됩니다. 사용하는 일부 R 함수에는 데이터가 포함될 때 함수가 작동하는 방식을 제어할 수 있는 인수가 있을 수 있습니다.NA. 예를 들어, 이 함수를 사용하면 다음을 포함하는 레코드를 자동으로 제외하도록 선택할 수 있습니다.NA. 이 옵션을 선택하지 않으면 누락된 값이 변경되지 않은 상태로 R에 전달되며 R 스크립트를 실행할 때 오류가 발생할 수 있습니다.
  • 날짜/시간 필드를 시간대에 대한 특수 제어가 있는 R 클래스로 변환 이 옵션을 선택하면 날짜 또는 날짜/시간 형식의 변수가 R 날짜/시간 오브젝트로 변환됩니다. 다음 옵션 중 하나를 선택해야 합니다.
    • R POSIXct. 날짜 또는 날짜 시간 형식의 변수가 R로 변환됩니다.POSIXct오브젝트.
    • R POSIXlt (목록). 날짜 또는 날짜 시간 형식의 변수는 R로 변환됩니다.POSIXlt오브젝트.
    참고: POSIX 형식은 고급 옵션입니다. R 스크립트가 날짜 시간 필드가 이러한 형식을 필요로 하는 방식으로 처리되도록 지정하는 경우에만 이 옵션을 사용하십시오. POSIX 형식은 시간 형식의 변수에 적용되지 않습니다.

콘솔 출력 탭

콘솔 출력 탭에는 R 스크립트 또는 Python 스크립트가 실행될 때 수신되는 모든 출력이 포함됩니다(예: R 스크립트를 사용하는 경우 구문 탭의 R 구문 필드에 있는 R 스크립트가 실행될 때 R 콘솔에서 수신되는 출력이 표시됨). 이 출력에는 R 스크립트 또는 Python 스크립트가 실행될 때 생성되는 R 또는 Python 오류 메시지 또는 경고가 포함될 수 있습니다. 출력은 주로 스크립트를 디버그하는 데 사용할 수 있습니다. 콘솔 출력 탭에는 R 구문 또는 Python 구문 필드의 스크립트도 포함되어 있습니다.

확장 트랜스폼 스크립트가 실행될 때마다 콘솔 출력 탭의 콘텐츠가 R 또는 Python 콘솔에서 받은 출력으로 덮어씌워집니다. 출력을 편집할 수 없습니다.

제어 이론 변환, 신호 처리 및 특징 매핑

SPSS Modeler 제어 이론 변환, 신호 처리 필터 및 특징 매핑을 통해 고급 데이터 전처리, 시계열 분석 및 특징 공학을 지원합니다. 이러한 기법들은 데이터 준비, 신호로부터 의미 있는 패턴 추출, 그리고 유용한 특징 생성에는 필수적이다.

이러한 기법들의 예시를 SPSS Modeler 흐름에서 확인하려면 샘플 extension-transform-node.zip 을 다운로드할 수 있습니다. SPSS Modeler 에 가져올 수 있는 여러 스트림 파일이 포함되어 있습니다. SPSS Modeler 스트림 가져오기에 대한 자세한 내용은 가져오기를 참조하십시오. 그런 다음 확장 변환 노드 속성을 열어 예제 구문을 확인하세요.

단순 변환

단순 변환은 데이터 분포를 수정하고, 비대칭성을 줄이며, 분산을 안정화시키고, 모델링을 위한 특징을 준비하는 수학적 변환이다. 이러한 변환은 기본적인 전처리 단계입니다.

로그 변환(대수)
설명

로그 변환은 데이터 값에 자연 로그(ln) 또는 10을 밑으로 하는 로그를 적용합니다. 이 변환은 양의 값을 가진 우측 편향 데이터에 유용할 수 있습니다.

예시 시나리오

소매업체는 자사 플랫폼 전반에 걸친 고객 구매 행동을 분석합니다. 주문 금액이 오른쪽으로 심하게 치우쳐 있음을 확인했는데, 대부분의 주문은 20~100달러 사이이지만 일부 주문은 10,000달러를 초과하기도 합니다. 구매 패턴을 더 잘 이해하고 예측 모델을 구축하기 위해, 그들은 주문 금액 데이터에 로그 변환을 적용합니다. 이 변환은 분포를 정규화하여 의미 있는 패턴을 식별하기 쉽게 하고, 극단적으로 높은 값의 주문이 분석에 미치는 영향을 줄입니다.

제곱근 변환
설명

제곱근 변환은 데이터 값의 제곱근을 취합니다. 이 변환은 카운트 데이터와 중간 정도의 새로움에 적합합니다.

예시 시나리오

제조 공장은 일일 검사 중 발견된 불량품 수를 추적합니다. 결함 수는 하루에 0개에서 50개 사이의 결함을 보이며, 적당한 우측 편향을 가진 포아송 분포와 유사한 양상을 보인다. 결함 수 데이터에 제곱근 변환을 적용함으로써 분산이 안정화되어 더 대칭적인 분포가 생성된다. 이러한 분포는 공정 문제를 나타낼 수 있는 비정상적인 패턴을 더 정확하게 감지하고 제어도를 개선할 수 있게 합니다.

상호 변환(역변환)
설명

상호 변환은 각 값에 대해 1/x 을 계산합니다. 쌍곡선 관계를 가진 데이터나 작은 값에 더 큰 가중치가 필요한 경우에 유용합니다.

예시 시나리오

한 배송 회사가 자사 차량의 배송 시간을 분석합니다. 배송 소요 시간(변동성이 매우 클 수 있음)을 사용하는 대신, 역수 변환을 통해 데이터를 변환하여 "배송률" 지표를 생성합니다. 이러한 변환을 통해 다양한 경로 간 효율성을 비교하고, 시간 측면에서 작은 개선만으로도 처리량에서 상당한 이득을 얻을 수 있는 병목 현상을 식별하는 데 도움을 줍니다.

전력 변환
설명

지수 변환은 값을 지정된 지수(x^p)로 올립니다. 이 변환은 지수 값에 따라 첨도를 증가시키거나 감소시킬 수 있습니다.

예시 시나리오

한 과학자가 오염 수준과 산업 단지와의 거리 사이의 관계를 연구하고 있다. 이 관계는 힘 법칙을 따르는 것으로 보이며, 오염은 발생원 근처에서는 급격히 감소하지만 더 먼 거리에서는 더 완만하게 감소한다. 거리 측정값에 신중하게 선택된 지수를 적용한 전력 변환을 수행함으로써, 과학자는 이 관계를 선형화하여 표준 회귀 분석에 적합하게 만들고 오염 감소 속도를 해석하기 쉽게 만든다.

표준화(규격화)
설명

이 변환은 특징들을 재조정하여 특정 통계적 특성을 가지도록 합니다.

예시 시나리오

소매업체의 고객 세분화 모델은 연간 소득(20,000~500,000달러), 연령(18~80세), 구매 횟수(0~200회)와 같이 규모가 크게 다른 특징들을 사용합니다. 표준화가 없다면, k-평균 군집화와 같은 거리 기반 알고리즘은 소득 변수의 넓은 수치 범위로 인해 이 변수에 의해 지배될 것이다. 표준화를 사용하여 각 특징을 변환할 때, 모든 특징이 클러스터링 알고리즘에 동등하게 기여한다. 이러한 변환을 통해 모델은 규모 차이에 의해 왜곡되지 않고 모든 특징에 걸친 결합된 패턴을 기반으로 의미 있는 고객 세그먼트를 식별할 수 있습니다.

윈저화(클리핑)
설명

이 변환은 값을 지정된 백분위수(예: 1백분위수와 99백분위수)로 제한함으로써 극단값을 억제합니다. 이 변환을 사용하면 데이터 포인트를 제거하지 않고도 이상값의 영향을 줄일 수 있습니다.

예시 시나리오

금융 분석가는 포트폴리오 최적화를 위해 일일 주식 수익률을 검토한다. 이 데이터셋에는 시장 붕괴 및 플래시 크래시에서 발생한 여러 극단적 이상값이 포함되어 있어 위험 계산을 왜곡할 수 있습니다. 이러한 데이터 포인트를 제거하기보다는, 분석가는 1백분위수와 99백분위수에서 윈저화(winsorization)를 적용하여 극단값을 제한하면서도 전체 표본 크기를 유지한다. 이 접근법은 포트폴리오 구성에 있어 변동성과 상관관계에 대한 보다 견고한 추정치를 제공한다.

다항식 (상호작용 항)
설명

다항식/상호작용 항을 사용하여 기존 특징을 제곱하거나 특징들을 곱함으로써 새로운 특징을 생성할 수 있습니다. 이 변환을 사용하여 비선형 관계와 특징 간 상호작용을 포착할 수 있습니다.

예시 시나리오

한 마케팅 회사는 TV, 디지털, 인쇄물 등 다양한 채널에 걸친 광고 지출이 판매에 어떤 영향을 미치는지 알고 싶어 합니다. 그들은 채널들이 시너지 효과를 낸다고 의심한다. 예를 들어, TV 광고는 디지털 캠페인의 효과를 증폭시킬 수 있습니다. 상호작용 항(TV × 디지털, TV × 인쇄, 디지털 × 인쇄)과 다항 항(TV², 디지털²)을 생성함으로써, 그들은 이러한 비선형적 관계와 상호작용 효과를 포착하고자 하며, 이는 마케팅 믹스 모델의 예측 정확도를 향상시킵니다.

간단한 변환을 위한 라이브러리

이러한 간단한 변환들은 모두 다음 R 및 Python 라이브러리를 사용합니다.

Python
    • numpy
    • scipy
    • sklearn.preprocessing
    • pandas
R
  • 기본 R 함수, scale()
  • poly()
  • DescTools::Winsorize()

제어 이론 필터

시계열 데이터 분석, 잡음 필터링, 주파수 성분 추출 및 동적 시스템 모델링을 위한 고급 기법을 활용할 수 있습니다. 이러한 방법은 센서 데이터, 금융 시계열 및 제어 시스템에 유용합니다.

칼만 필터
설명

칼만 필터는 잡음이 섞인 측정값으로부터 동적 시스템의 상태를 추정하는 최적의 재귀적 알고리즘이다. 수학적 모델의 예측과 잡음이 섞인 관측값을 결합하여 최적의 추정치를 산출한다.

예시 시나리오

차량용 내비게이션 시스템이 개발 중이며, GPS 센서를 이용해 위치를 추적할 예정이다. 그러나 GPS 신호는 잡음이 많고 가끔 사용할 수 없습니다. 내비게이션 시스템은 GPS 측정치와 차량 운동 모델(속도와 조향각을 기반으로 함)의 예측값을 결합하는 칼만 필터를 사용할 수 있습니다. 이 필터는 이러한 정보 소스를 최적의 가중치로 반영하여 GPS 신호가 열화되는 상황에서도 부드럽고 정확한 위치 추정치를 제공하며, 일시적인 GPS 중단 시에도 합리적인 위치 추정치를 유지할 수 있습니다.

라이브러리
Python
  • filterpy 라이브러리 (종합 칼만 필터 구현체)
R
  • KFAS (지수형 상태 공간 모델을 위한 칼만 필터 및 스무더)
  • dlm (동적 선형 모델)
저주파 통과 필터
설명

저역 통과 필터는 특정 저주파수 대역을 선택적으로 통과시키면서 고주파수를 감쇠시키는 디지털 필터입니다. 소음 감소 및 신호 정화에 사용할 수 있습니다.

예시 시나리오

기술자는 환자의 심전도(ECG) 신호를 분석하여 심장 이상을 감지합니다. 원시 심전도 신호에는 근육 움직임, 전기적 간섭 및 센서 인공물로부터 발생하는 고주파 노이즈가 포함되어 있어 근본적인 심장 리듬을 가린다. 기술자는 40Hz의 차단 주파수를 가진 저역 통과 버터워스 필터를 적용하여 고주파 노이즈를 제거하면서도 필수적인 심장 파형을 보존함으로써 정확한 심박수 측정과 부정맥 감지가 가능하도록 합니다.

라이브러리
Python
  • scipy.signal (버터, cheby1, cheby2, 베셀 함수, 타원 함수)
R
  • signal 포장물
고역 필터
설명

고역통과 필터는 특정 고주파수 대역을 선택적으로 통과시키면서 임계값 이하의 저주파수 대역을 감쇠시키는 디지털 필터입니다. 소음 감소 및 신호 정화에 사용할 수 있습니다.

예시 시나리오

음향 엔지니어는 에어컨 시스템과 교통 소음으로 인한 저주파 럼블이 포함된 녹음물을 처리합니다. 이러한 저주파 성분(80Hz 미만)은 음성 명료도에 기여하지 않지만, 동적 범위를 소모하고 왜곡을 유발할 수 있습니다. 엔지니어는 80Hz 컷오프를 가진 고역 통과 필터를 적용함으로써, 인간의 음성(일반적으로 100~8,000Hz)의 선명함을 완전히 보존하면서 저주파 소음을 제거합니다. 필터를 사용하면 더 깨끗하고 전문적인 느낌의 녹음을 얻을 수 있습니다.

라이브러리
Python
  • scipy.signal (버터, cheby1, cheby2, 베셀 함수, 타원 함수)
R
  • signal 포장물
대역통과 필터
설명

대역통과 필터는 특정 주파수 범위를 선택적으로 통과시키면서 그 범위 외의 주파수를 감쇠시키는 디지털 필터입니다. 소음 감소 및 신호 정화에 사용할 수 있습니다.

예시 시나리오

지진학자는 지진 데이터를 분석하여 서로 다른 유형의 지진파를 구분한다. 초기파(P파)는 일반적으로 1-5Hz 범위에서 발생한다. 표면파는 더 낮은 주파수( 0.1-1 Hz)에서 나타난다. 지진학자는 1-5Hz 중심의 대역통과 필터를 적용하여 복잡한 지진계에서 P파 도달을 분리할 수 있다.

라이브러리
Python
  • scipy.signal (버터, cheby1, cheby2, 베셀 함수, 타원 함수)
R
  • signal 포장물
지수평활법(이동평균)
설명

이 필터는 시계열에 대해 평활화 기법을 사용하여 노이즈를 줄이면서도 근본적인 추세를 보존합니다. 가중 평균을 사용하여 최근 관측값에 더 큰 비중을 부여합니다.

예시 시나리오

소매 체인은 재고 계획을 위해 주간 매출을 예측합니다. 역사적 판매 데이터는 기본적인 추세와 함께 프로모션, 날씨, 그리고 무작위 요인들로 인한 주간별 상당한 변동성을 보여줍니다. 그들은 최근 관측값에 더 큰 가중치를 부여하면서 단기 변동을 완화하는 지수평활법을 적용하며, 이때 α= 0.3 로 설정한다. 이 평활화는 일시적인 급등에 과도하게 반응하지 않으면서 진정한 추세를 포착하는 안정적인 예측을 생성합니다.

라이브러리
Python
  • scipy.signal (버터, cheby1, cheby2, 베셀 함수, 타원 함수)
R
  • signal 포장물
웨이블릿 변환
설명

웨이블릿 변환은 다중 분해능 분석 기법을 사용하여 웨이블릿(국소화된 파동형 함수)을 통해 신호를 시간-주파수 표현으로 분해합니다. 또한 시간 및 주파수 정보를 모두 제공합니다.

예시 시나리오

기술 전문가는 뇌 MRI 영상을 분석하여 뇌 이상을 발견한다. 이미지에는 대규모 해부학적 구조와 미세 규모의 조직 변이와 같은 다양한 규모에서 중요한 특징들이 포함되어 있습니다. 기술자는 Daubechies 웨이블릿을 이용한 이산 웨이블릿 변환을 사용하여 이미지를 여러 해상도 수준으로 분해할 수 있다. 이 다중 스케일 분석은 표준 공간 분석에서는 놓칠 수 있는 미묘한 패턴을 드러낸다.

라이브러리
Python
  • pywt ( PyWavelets ) 라이브러리
R
  • wavelets 포장물
  • waveslim
상태 공간 모델
설명

상태 공간 모델은 동적 시스템을 미분 방정식 또는 차분 방정식으로 연결된 입력, 출력 및 상태 변수의 집합으로 표현하는 수학적 틀이다. 이것은 시계열 분석 및 제어에 대한 통합된 접근 방식을 제공합니다.

예시 시나리오

한 국가의 GDP 동향을 설명하는 경제 모델은 소비, 투자, 정부 지출, 순수출 등 여러 상호 연관된 요소를 활용한다. 이러한 구성 요소들은 시간이 지남에 따라 진화하며 복잡한 방식으로 서로 영향을 미칩니다. 문제를 상태 공간 모델로 공식화함으로써, 관측된 경제 지표의 측정 오차를 고려하면서도 국가의 경제 상태와 그 변화를 표현할 수 있다. 해당 모델은 누락된 데이터를 적절히 처리하고 불확실성 정량화를 제공하는 정교한 예측을 가능하게 합니다.

라이브러리
Python
  • statsmodels.tsa.statespace 모듈
R
  • KFAS
  • dlm 패키지

신호 처리

신호 처리 기법을 사용하여 측정된 신호에서 관심 있는 구성 요소를 감지하거나 정확히 찾아낼 수 있습니다.

빠른 푸리에 변환(FFT)
설명

시간 영역 신호를 주파수 영역 표현으로 변환하기 위해 고속 푸리에 변환을 사용할 수 있으며, 이를 통해 주기적 성분과 스펙트럼 특성을 파악할 수 있습니다.

예시 시나리오

한 제조업체는 진동 센서 데이터를 분석하여 산업용 기계의 문제를 진단하고자 합니다. 다양한 유형의 결함은 특정 주파수에서 특징적인 진동 패턴을 생성한다. 시계열 진동 데이터에 FFT를 적용함으로써, 이를 주파수 영역으로 변환할 수 있으며, 이는 각 주파수에서의 진동 진폭을 보여줍니다. 특정 주파수에서 나타나는 피크는 특정 결함 유형을 나타내며, 제조사는 이를 활용하여 치명적인 고장이 발생하기 전에 유지보수를 계획할 수 있습니다.

라이브러리
Python
  • numpy.fft 모듈
  • scipy.fft
R
  • fft() 함수 (기본 R),
  • spectrum()

매핑 및 특징 변환

정보성 높은 특징을 생성하고 복잡한 관계를 포착하며 모델 성능을 향상시키는 고급 특징 공학 기법도 활용할 수 있습니다.

박스- Cox 변환
설명

데이터를 더 정규 분포에 가깝게 만들고 분산을 안정화시키기 위해 최적의 변환 매개변수(람다)를 자동으로 결정하는 일련의 전력 변환 기법.

예시 시나리오

시장 분석가는 평수, 침실 수, 대지 크기 등의 특징을 바탕으로 주택 가격을 예측하기 위해 회귀 모델을 구축한다. 가격 분포는 우측 편향되어 있으며 비일정한 분산을 보인다. 분석가는 박스-호프만(Box- Cox ) 변환을 적용하여 분포를 가장 잘 정규화하고 분산을 안정화시키는 최적의 람다 매개변수(λ= 0.23 )를 자동으로 결정합니다. 변환은 회귀 모델의 가정과 예측 정확도를 향상시킵니다.

라이브러리
Python
  • scipy.stats.boxcox()
  • sklearn.preprocessing.PowerTransformer
R
  • boxcox() MASS 패키지에서
  • car::powerTransform()
순위 및 분위수 매핑
설명

순위 또는 사분위수 위치에 기반하여 데이터를 변환합니다. 분위수 매핑은 데이터를 변환하여 더 균일하게 만들거나 분위수를 기반으로 정규 분포에 맞추는 과정이다. 순위 매핑은 백분위 순위를 사용하여 데이터를 표준화된 척도로 변환합니다.

예시 시나리오

신용 점수 모델은 서로 다른 분포를 가진 여러 위험 지표를 결합합니다: 일부는 정규 분포를 따르고, 다른 일부는 극도로 치우친 분포를 보이며, 또 다른 일부는 두꺼운 꼬리를 가집니다. 이 모델은 각 지표에 분위수 변환을 적용하여 견고한 종합 점수를 생성합니다. 이 접근법은 특이값에 민감하지 않으며, 각 지표가 원래의 척도나 분포 형태와 관계없이 최종 점수에 동등하게 기여하도록 보장합니다.

라이브러리
Python
  • scipy.stats.rankdata()
  • pandas.qcut()
  • sklearn.preprocessing.QuantileTransformer
R
  • rank()
  • quantile()
  • cut()
기능 상호작용
설명

기존 기능을 수학적 연산을 통해 결합하여 새로운 기능을 생성하는 데 기능 상호작용을 사용할 수 있습니다. 특성 상호작용을 활용하면 개별 특성으로는 표현할 수 없는 시너지 효과와 비선형적 관계를 포착할 수 있습니다.

예시 시나리오

한 자동차 보험사가 보험금 청구 금액을 예측하기 위한 모델을 구축합니다. 운전자 연령, 차량 가치, 연간 주행 거리별 요금 체계가 적용됩니다. 분석 결과, 이러한 요소들과 청구 간의 관계는 단순히 가산적이지 않다는 것이 밝혀졌다. 예를 들어, 높은 주행 거리는 특히 젊은 운전자에게 위험하지만, 경험 많은 운전자에게는 덜 위험합니다. 상호작용 변수(연령 × 주행거리, 연령 × 차량가치, 주행거리 × 차량가치)를 생성함으로써 모델은 이러한 시너지 효과를 포착하여 예측 정확도를 향상시키고 보다 정교한 위험 기반 가격 책정이 가능해집니다.

라이브러리
Python
  • sklearn.preprocessing.PolynomialFeatures
  • 사용자 정의 함수
,
R
  • 수식 인터페이스 ( x1:x2 )
  • poly()
  • 사용자 정의 함수
사용자 정의 비선형 매핑
설명

특징에 사용자 정의 수학 함수나 도메인별 변환을 적용하는 변환을 정의할 수 있습니다.

예시 시나리오

통신사는 고객 이탈을 예측하기 위해 고객 패턴을 분석하고자 한다. 이들은 이탈률과 고객 서비스 문의 사이에 비선형적 관계가 있음을 보여준다. 최근 고객 서비스에 문의한 고객들은 이탈 위험이 높습니다. 최근 고객센터에 문의한 고객들은 문제가 해결되었을 가능성이 높아 위험도가 낮으며, 수개월간 문의하지 않은 고객들은 위험도가 점차 증가합니다. 해당 기업은 이 복잡한 관계를 포착하는 맞춤형 U자형 변환을 생성하여 이탈 예측 정확도를 향상시킵니다.

라이브러리

사용자 정의 스크립트 및 함수를 통해 구현됨