본문 바로가기
728x90

scikit-learn8

[PYTHON] 고차원 카테고리 데이터 해결을 위한 Target Encoding 오버피팅 방지 7가지 방법 머신러닝 프로젝트를 진행하다 보면 High-cardinality(고차원) 카테고리 변수를 마주하게 됩니다. 예를 들어 우편번호, 기기 ID, 혹은 수천 개의 카테고리를 가진 상품 분류 등이 이에 해당합니다. 이러한 데이터를 처리할 때 일반적인 One-Hot Encoding을 사용하면 데이터 프레임의 차원이 폭발적으로 증가하여 메모리 부족 현상이 발생하거나, 모델의 학습 속도가 현저히 느려지는 문제가 발생합니다. 이러한 한계를 극복하기 위해 실무에서는 Target Encoding(Mean Encoding)을 자주 사용합니다. 하지만 Target Encoding은 타겟 변수의 정보를 직접 참조하기 때문에 데이터 누수(Data Leakage)와 오버피팅(Overfitting)에 매우 취약하다는 치명적인 단점이.. 2026. 4. 23.
[PYTHON] 결측치 처리 시 평균값과 KNN/Iterative Imputer 선택 방법 7가지 해결 차이점 데이터 전처리 과정에서 결측치(Missing Values)를 어떻게 처리하느냐는 모델의 최종 성능을 결정짓는 가장 중요한 분수령입니다. 많은 초보 개발자들이 단순히 fillna(df.mean())를 사용하여 빠르게 문제를 넘기려 하지만, 이는 데이터의 분산을 왜곡하고 변수 간의 상관관계를 파괴하는 치명적인 결과를 초래할 수 있습니다. 본 포스팅에서는 단순 통계량 기반의 대치법과 머신러닝 알고리즘을 활용한 다변량 대치법(KNN, Iterative Imputer)의 메커니즘 차이를 분석하고, 실무 상황별로 어떤 알고리즘을 선택해야 하는지에 대한 7가지 전문적인 해결 가이드를 제시합니다.1. 결측치 대치 알고리즘별 핵심 메커니즘 및 차이점 비교단순 대치와 다변량 대치는 데이터의 '맥락'을 이해하느냐에 큰 차이.. 2026. 4. 19.
[PYTHON] Label Encoding vs One-hot Encoding 선택 방법 7가지와 모델별 성능 차이 해결 머신러닝 프로젝트의 성패는 모델 알고리즘 선택만큼이나 범주형 데이터(Categorical Data)를 어떻게 수치로 변환하느냐에 달려 있습니다. 단순히 '텍스트를 숫자로 바꾼다'는 개념을 넘어, 우리가 선택한 인코딩 방식은 모델이 데이터 간의 관계를 해석하는 방식 자체를 결정합니다. 본 포스팅에서는 Label Encoding과 One-hot Encoding이 트리 기반 모델(XGBoost, LightGBM 등)과 선형 모델(Logistic Regression, SVM 등)에 미치는 치명적인 영향력을 분석하고, 실무에서 마주하는 성능 저하 문제를 해결하기 위한 7가지 핵심 전략을 전문적인 관점에서 제시합니다.1. 인코딩 방식에 따른 메커니즘 차이 및 모델별 적합성 비교인코딩 방식은 데이터의 차원과 '순서(.. 2026. 4. 19.
[PYTHON] Feature Engineering 파이프라인 모듈화 방법 7가지와 하드코딩 해결 차이점 데이터 분석가와 머신러닝 엔지니어가 겪는 가장 흔한 악몽 중 하나는 "훈련 데이터(Train)에서는 잘 작동하던 전처리 코드가 추론(Inference) 단계에서 에러를 뿜거나 성능이 급락하는 현상"입니다. 이는 전처리 단계와 모델 학습 단계가 파편화되어 있기 때문에 발생하는 고질적인 문제입니다. 특히 결측치 처리, 스케일링, 인코딩을 데이터프레임 단위로 수동 관리하면 'Data Leakage(데이터 누수)' 문제에서 자유로울 수 없습니다. 본 포스팅에서는 Scikit-learn(Sklearn) Pipeline을 활용하여 지저분한 전처리 과정을 하나의 깔끔한 모듈로 통합하고, 이를 통해 모델의 재현성을 확보하는 전문적인 엔지니어링 전략을 제시합니다.1. 하드코딩 방식과 Pipeline 모듈화 방식의 치명적.. 2026. 4. 18.
[PYTHON] Scikit-learn 파이프라인 확장을 위한 2가지 커스텀 트랜스포머 구현 방법과 데이터 누수 해결< 머신러닝 프로젝트의 성패는 모델의 알고리즘만큼이나 데이터 전처리 파이프라인(Data Preprocessing Pipeline)의 견고함에 달려 있습니다. 단순히 데이터를 정제하는 것을 넘어, 전처리 과정을 모델 학습 과정과 완벽하게 통합하지 않으면 치명적인 데이터 누수(Data Leakage)가 발생하여 모델의 성능을 오염시키게 됩니다. Scikit-learn의 Pipeline은 매우 강력하지만, 기본 제공되는 StandardScaler나 OneHotEncoder만으로는 비즈니스 특화된 복잡한 로직(예: 특정 도메인 공식 적용, 텍스트 파싱 등)을 처리하기에 부족함이 있습니다. 본 가이드에서는 BaseEstimator와 TransformerMixin을 상속받아 나만의 독창적인 커스텀 트랜스포머를 설계하는.. 2026. 3. 21.
[PYTHON] Python으로 배우는 실전 머신러닝 입문 머신러닝(Machine Learning)은 데이터에서 스스로 패턴을 학습하고 예측하거나 결정을 내리는 알고리즘을 만드는 기술입니다. Python은 그 간결한 문법과 풍부한 라이브러리 생태계 덕분에 머신러닝 분야에서 가장 많이 사용되는 언어로 자리 잡았습니다. 이 글에서는 Python 기반 머신러닝의 실용적인 예제부터 실제 모델 구축 방법까지, 깊이 있고 독창적인 내용을 제공하여 초보자도 쉽게 실무로 연결할 수 있도록 구성했습니다.Python이 머신러닝에 적합한 이유다양한 라이브러리: scikit-learn, TensorFlow, PyTorch, XGBoost 등 머신러닝에 최적화된 라이브러리 제공커뮤니티: 전 세계적으로 활발한 커뮤니티와 오픈소스 생태계가독성: 수학적 개념을 직관적으로 코드로 구현 가능생.. 2025. 7. 23.
728x90