고차원 데이터 질문
56
投稿した質問数 1
안녕하세요. 정말 좋은 강의 잘 듣고 있습니다:)
문득, 강의를 듣다가 궁금한 점이 생겨 질문 남깁니다.
현재 실습으로 진행하고 있는 타이타닉 데이터 같은 경우에는 컬럼 값이 많지 않은 데이터로 EDA 분석 후에 feature engineering, 모델링, 예측 순으로 진행하게 되는데 만약 컬럼 값이 수백개 또는 수천개 정도의 고차원 데이터 같은 경우에는 각각의 컬럼과 타겟변수와의 관계, 컬럼과 컬럼과의 연관성 등 EDA를 진행하기에는 어려움이 있지 않을까하는 의문점이 들었습니다.
이런 고차원 데이터의 경우에는 PCA와 같은 차원축소 기법을 먼저 적용하여 컬럼의 수를 줄인 후에 EDA를 진행하는 것이 맞는건지 질문드립니다.
回答 1
0
안녕하세요. 우선 답변이 늦어서 죄송합니다. 답변이 없으면 dream@fun-coding.org 로 메일주시면 최대한 24시간내에 답변드리겠습니다.
우선 좋은 질문 감사합니다.
말씀하신 대로 컬럼이 수백~수천 개에 달하는 고차원 데이터의 경우, 타이타닉처럼 모든 컬럼을 일일이 타겟변수와의 관계나 컬럼 간 상관관계를 살펴보는 방식의 EDA는 현실적으로 어렵습니다. 다만, 이 경우에 바로 PCA와 같은 차원축소 기법을 먼저 적용하는 것은 일반적으로 권장되지 않습니다.
그 이유는 PCA는 데이터의 분산을 최대한 보존하는 새로운 축으로 변환하는 방식이기 때문에, 변환 후의 주성분(Principal Component)은 원래 컬럼의 의미를 잃어버리게 됩니다. 즉, EDA의 본래 목적인 '데이터에 대한 이해'를 얻기 어려워집니다. 또한 PCA는 수치형 데이터에 적합하고 스케일링이 선행되어야 하는 등 전제 조건도 있어, 무작정 먼저 적용하기에는 무리가 있습니다.
고차원 데이터를 다룰 때는 보통 다음과 같은 순서로 접근합니다. 먼저, 도메인 지식을 활용하여 분석 목적과 관련성이 높은 컬럼들을 우선적으로 살펴봅니다. 그리고 결측치 비율이 너무 높거나 분산이 거의 없는 컬럼, 중복되는 컬럼 등을 제거하여 컬럼 수를 1차적으로 줄입니다. 이후 타겟변수와의 상관계수, Mutual Information, Feature Importance(강의 내에서도 이 작업을 설명드리고 있습니다) 등을 통해 중요도가 높은 컬럼들을 선별하여 집중적으로 EDA를 진행합니다.
PCA나 t-SNE, UMAP과 같은 차원축소 기법은 주로 데이터 시각화(2D/3D로 데이터의 분포나 군집 구조를 파악)나 모델링 단계에서 다중공선성 해결, 연산 효율 향상 등의 목적으로 활용하는 것이 일반적입니다.
정리하면, 고차원 데이터의 EDA는 '차원축소 먼저'보다는 '의미 있는 컬럼 선별 먼저'의 관점으로 접근하시는 것을 추천드립니다.
추가로 궁금한 점 있으시면 언제든 dream@fun-coding.org 로 문의주셔도 좋습니다.
Dave Lee 드림
자료 공유 질문
0
60
1
Ascii 에러 관련하여 질문드립니다
0
81
1
test / train 데이터 나누기
0
97
1
세션4 범주형 데이터 분석 패턴 강의 질문
0
199
2
pandas 2.2.2, xgboost 2.1.3 에러 해결 방법
0
215
1
sklearn v1.5.1
0
168
1
머신러닝 적용을 위한 Feature Engineering 작업1
0
179
2
missingno 대체
0
168
1
scikit-learn 1.5.1 matplotlib 3.9.2
0
130
1
환불문의
0
264
1
자료공유를 받으려고 하는데 에러가 납니다.
0
158
1
iplot에서 항상 에러나는 분 안계신가용?
0
224
1
사망 여부 영향 가능성
0
142
1
섹션4_인코딩 이해하고 적용해보기(원핫인코딩) 질문
0
190
1
df.corr(numeric_only=True).iplot() 에러 해결 어떻게 해야되나요?
0
280
1
주피터 노트북 201_REGRESSION_BIKE_SHARING_MODELS 중 질문
0
245
1
3강 강의 자료 코드 관련 질문입니다
1
337
1
맥 사용자 mkdir .kaggle 했는데 파일이 안만들어집니다.
0
415
1
Bayesian Optimization에서 optimizer.maximize()함수를 더이상 지원 안한다고 합니다.
0
877
2
Bayesian Optimization LightGBM 적용
0
458
2
하이퍼 파라미터 튜닝 기법 적용하기 실행값이 미묘하게 달라요.
1
343
1
중복된 코드 수정 요청 - 자전거 공유 문제 이해와 EDA3
0
216
1
강의 중 에러 질문
0
741
1
cross_val_score 에러
0
464
1

