티스토리 뷰
[Pandas] 데이터 변환- 특징 생성(피처 엔지니어링, 범주 인코딩, 결합 및 분해, 차원 축소)
sikaro 2024. 2. 6. 14:50목표
범주 인코딩의 정의를 설명할 수 있다.
변수의 결합과 분해를 기반으로 새로운 특징을 생성할 수 있다.
차원 축소의 목적에 따라 주성분 분석과 군집 분석을 통해 새로운 특징을 생성할 수 있다.
특징 생성 Feature Creation
원본 데이터의 조합/ 변환 등을 기반하여 새로운 특징들을 구축 및 생성하는 방법
특징이란 원 데이터의 변환을 통해 생성되는 새로운 컬럼 변수(변수 값)
원본 데이터로 특징을 새롭게 생성하여 분석 과정 내 성능과 효율성 확보
비용, 연산 비용의 효율성 추구
피처 엔지니어링
원시 데이터로부터 적절하고 올바른 특징들을 만들어 내는 일련의 과정
품질 확보 - 가공을 거치지 않은 Raw 데이터 활용 기반의 모델링은 품질 확보가 어렵다.
최적화된 형태 변환 - 효과적인 Feature를 확보하는 것이 데이터 분석 내 가장 중요한 과정이다.
경진대회 수상자 - 적절한 변수를 생성해야 한다.
모델의 성능, 품질, 효율, 적합성등을 확보
특징 생성 방안
범주 인코딩
- 크게 Nominal(순서가 없는)과 Ordinal(순서가 있는) 형식으로 나뉘는 범주형 변수
- 숫자가 아닌 범주 변수 값을 숫자로 표현하고 모델링에 적용하기 위한 과정
- 범주형에는 순서의 의미를 가지지 않는 경우가 많다.
- 순서가 있는 범주형의 경우에는 비교가 용이하다(1등,2등,3등)
- 선형회귀 분석에서 단위가 커질수록 순서가 있으면 영향력이 있다.
결합 및 분해
- 데이터 셋의 변수들의 조합을 기반으로 새로운 특징을 구축하는 방법
- 주어진 변수간의 수리적 연산, 혹은 파싱 등 새로운 방법
- 변수 간의 연산 혹은 분해를 통해 새로운 특징을 구축하고 입력 변수로 모델링에 적용
차원 축소
- 원본 데이터로부터 새로운 특징의 집합을 생성하는 것
- 고차원 원시 데이터 셋을 저차원으로 차원 축소하도록 새로운 특징을 생성하는 방식
범주 인코딩
범주형 데이터의 알고리즘 적용을 위한 수치형 변환
One-hot Encoding
일정 값 이상은 1, 이하는 0.
True 냐 False 냐이다.
순서의 의미를 지니지 않은 범주형 변수를 처리하는 대표적 방법.
k개의 범주를 지닌 범주형 변수를 k개의 변수로 변환.
다만 실무에서 사용할 경우에 유의할 경우
범주 수가 너무 많다면 10000개*10000개가 된다. 이 경우에 대해서 생각해야 된다.
결합 기반 특징 생성
파생 변수를 생성할 때 많이 고려된다.
원본 데이터에는 나타나지 않는 새로운 특징을 찾기 위해서 사용된다.
원본 데이터가 영어, 일본어의 점수일 경우
Add / Divide / Subtract ( 사칙연산 기반)
- 합계 / 평균 : 종합 외국어 능력 파악 (평균의 경우, 변수 값 크기 조정 및 표준화 목적 포함)
- 점수를 합계로 파악하고, 편차를 표시하는 것도 좋다.
- 편차(subtract) : 특정 언어 편중 정도를 파악한다.
Multiply (상호작용형)
- 온도*압력(multiply) : 상호작용하여 온도와 압력 간의 시너지 효과 파악
- 도메인 지식 기반으로 특징 생성 검토 반드시 필요하다.
- 도메인 지식 없이 하면 엄청나게 많은 새 데이터가 생성되게 될 수 있다.
분해 기반 특징 생성
변수의 분해를 통해 새로운 의미를 지닌 특징을 생성
Separate
접속 시간 이력
분석 목적 : timesale 마케팅 파악
접속 시간(년,월, 일)과 구매 여부에 대한 정보를 제공한다면
그 시간대 별로 오전/오후, 요일, 주말 여부(요일로 만들어낸다) 등등을 만들 수 있다.
>특정 변수 활용 기반의 새로운 의미를 파악할 수 있는 특징을 생성하는 방법
>도메인 지식 및 일반적 개념 기반으로 생성 가능
차원 축소 목적 특징 생성
>서로 연관된 변수들이 관측되었을 때, 원본 데이터 분산 기반의 특징을 생성
> 주성분 간의 서로 독립을 이루도록 구성(상관관계가 없도록 구성)
주성분 분석 (PCA (Principal component Analysis))
원본데이터가 지닌 정보를 최대한 확보하도록 저차원 데이터로 생성해서 특징을 확보하는 방안
n개의 변수를 지닌 데이터를 n차원이라고 한다면
주성분은 n개보다 적은 수로 만들 수 있다.
원본 데이터의 분산을 기반으로 특징을 생성한다
서로 독립을 이루도록 만들어 내는 것이 주성분 분석의 핵심 원리이다.
PC1은 분포를 가장 많이 보전하는 특징으로 만들어지고,
PC2를 만들 때는 PC1과 PC2는 독립적이고, PC1 다음으로 분포를 최대한 보전하는 방식으로(정보를 보전하는 방향으로) 생성한다.
주성분(PC)의 수는 분석가 판단으로 설정 가능
분산이 설명하는 비율이 일정 비율이 이상이 되도록 설정하면 도출되는 개수로도 설정 가능하다(?)
PC의 수는 분산이 설정하는 비율이 일정 비율 이상이 되도록 설정도 가능하다.
PCA에서 PC의 개수 설정 방법: 분산 비율 기준
설명:
PCA에서 PC의 개수를 설정하는 방법 중 하나는 분산 비율 기준입니다. 이 방법은 각 PC가 설명하는 분산 비율이 일정 비율 이상이 되도록 설정하는 방식입니다.
예시:
- 분산 비율 80% 이상: 전체 데이터의 분산 중 80% 이상을 설명하는 PC만 선택합니다. 예를 들어, 10개의 PC가 있고 각 PC가 설명하는 분산 비율이 다음과 같다고 가정합니다.
PC1: 40%
PC2: 20%
PC3: 10%
PC4: 5%
PC5: 5%
PC6: 4%
PC7: 3%
PC8: 2%
PC9: 1%
PC10: 1%
이 경우, 분산 비율 80% 이상 기준을 적용하면 PC1과 PC2만 선택됩니다. 왜냐하면 PC1과 PC2만 합쳐서 전체 데이터의 분산 80%(40% + 20%) 이상을 설명하기 때문입니다.
장점:
- 데이터의 주요 특징을 효과적으로 보존할 수 있습니다.
- 불필요한 정보를 제거하여 데이터 분석을 간소화할 수 있습니다.
단점:
- 적절한 분산 비율 기준을 설정하는 것이 중요합니다. 너무 높은 기준을 설정하면 중요한 정보가 손실될 수 있으며, 너무 낮은 기준을 설정하면 데이터 분석의 효과가 감소할 수 있습니다.
- 일반적으로 80% 이상의 분산을 설명하는 PC를 선택하는 것이 좋지만, 이는 데이터의 특성에 따라 달라질 수 있습니다.
참고:
- 분산 비율 기준 외에도 스크리 잡도(Scree plot), 누적 분산 비율(Cumulative variance) 등을 사용하여 PC의 개수를 설정할 수 있습니다.
- 데이터 분석의 목적과 데이터의 특성에 따라 적절한 방법을 선택하는 것이 중요합니다.
군집 분석 기반의 고차원 데이터를 하나의 특징으로 차원 축소
Featurization via Clustering(클러스터링을 통한 특징화)
- 고차원 데이터를 군집 분석을 기반으로 특징의 개수를 하나의 특징(군집 결과)으로 축소
- 이렇게 획득한 군집 결과 특징을 분류/회귀 등 문제 해결을 위한 입력 변수로 활용(Stacking 방법)
- 즉, 원본 데이터 내 여러 개의 특징을 하나의 특징으로 축소하여 모델 연산 비용 감소 추구
군집 분석이란?
여러 특징을 지닌 레코드 끼리의 유사성을 보고 유사한 데이터들 끼리 하나의 클러스터(군집)으로 만들어낸다.
100개의 컬럼을 1개의 컬럼으로
모델에 적용하는 변수의 수가 줄어든다.
유의할 점은 생성한 군집 결과가, 원래의 관측치들을 잘 반영한, 올바른 군집 결과로 구축이 되어야만 향후 모델링의 품질이 확보된다.