(거의) 모든 데이터 과학 프로젝트를 처리하기 위한 5단계 가이드


작성자별 이미지
# 소개
데이터 과학에 대해 아무도 말해주지 않는다는 사실을 아시나요? 흥미로운 부분(모델링, 알고리즘, 인상적인 지표 달성)은 성공적인 프로젝트의 약 20%를 차지합니다. 나머지 80%는 확실히 지루합니다. 성공이 무엇을 의미하는지 논쟁하고, 데이터 분포를 살펴보고, 기본 기준선을 구축하는 것입니다. 하지만 그 80%가 바로 출시되는 프로젝트와 계속 유지되는 프로젝트를 구분하는 것입니다. 목성 어딘가에 노트북.
이 가이드는 다양한 도메인과 문제 유형에 걸쳐 작동하는 구조를 안내합니다. 특정 도구나 알고리즘에 관한 것이 아닙니다. 이는 잘못된 목표를 위한 구축, 프로덕션에서 나타나는 데이터 품질 문제 누락, 비즈니스에 중요하지 않은 지표 최적화 등 일반적인 함정을 피하는 데 도움이 되는 프로세스에 관한 것입니다.
견고한 데이터 과학 작업의 기초를 형성하는 5가지 단계를 다룰 것입니다.
- 문제를 명확하게 정의합니다.
- 데이터를 철저하게 이해합니다.
- 의미 있는 기준선 설정.
- 체계적으로 개선합니다.
- 실제 조건에 대해 검증합니다.
시작해 봅시다.
# 1단계: 먼저 비즈니스 용어로 문제를 정의하고, 다음으로 기술 용어로 문제를 정의합니다.
내려야 할 실제 결정부터 시작하십시오. “고객 이탈 예측”이 아니라 “500명에게만 연락할 수 있고 각 연락처당 비용은 15달러라는 점을 고려하여 향후 30일 동안 유지 캠페인으로 어떤 고객을 타겟팅할지 식별합니다.”와 같은 좀 더 구체적인 것입니다.
이 프레이밍은 다음 사항을 즉시 명확하게 합니다.
- 최적화 대상(모델 정확도가 아닌 유지 비용의 투자 수익률(ROI))
- 어떤 제약이 중요합니까(시간, 예산, 접촉 제한).
- 성공의 모습(캠페인 수익 대 모델 측정항목)
이것을 한 문단으로 적어보세요. 명확하게 설명하는 데 어려움을 겪는다면 이는 아직 문제를 완전히 이해하지 못했다는 신호입니다. 작업을 요청한 이해관계자에게 보여주세요. 그들이 세 문단으로 설명한다면 당신은 분명히 그것을 이해하지 못한 것입니다. 이 앞뒤로 움직이는 것은 정상입니다. 건너뛰기보다는 반복적으로 학습하고 개선하세요.
이러한 조정 후에만 비즈니스 문제를 기술 요구 사항으로 변환해야 합니다.: 예측 목표, 시간 범위, 허용 가능한 대기 시간, 요구되는 정밀도 대 재현율 절충 등.
# 2단계: 데이터를 직접 다루세요
엔드투엔드 데이터 파이프라인을 결정하는 방법에 대해서는 아직 생각하지 마세요. MLOps(기계 학습 작업) 인프라를 설정할 생각은 하지 마세요. 어떤 모델을 사용할지 생각조차 하지 마세요. Jupyter Notebook을 열고 데이터 샘플을 로드합니다. 대표하기에 충분하지만 빠르게 반복할 수 있을 만큼 작습니다.
여기에서 실시간으로 시간을 보내세요. 데이터를 탐색하는 동안 다음과 같은 몇 가지 사항을 찾고 있습니다.
데이터 품질 문제: 누락된 값, 중복, 인코딩 오류, 시간대 문제, 데이터 입력 오타. 모든 데이터 세트에는 이러한 항목이 있습니다. 이제 이를 찾으면 지금부터 3주 후에 알 수 없는 모델 동작을 디버깅하지 않아도 됩니다.
분포특성: 다음 질문을 분석하고 답변해 보세요. 특성이 정규 분포되어 있습니까? 심하게 비뚤어졌나요? 바이모달? 목표 변수의 범위는 무엇입니까? 이상값은 어디에 있으며 오류 또는 정당한 예외 사례입니까?
시간적 패턴: 타임스탬프가 있는 경우 시간에 따라 모든 것을 플롯합니다. 계절성, 추세, 데이터 수집 절차의 갑작스러운 변화를 찾아보세요. 이러한 패턴은 기능을 알리거나 무시할 경우 생산 중인 모델을 손상시킵니다.
대상과의 관계: 예측하려는 내용과 실제로 상관관계가 있는 기능은 무엇입니까? 아직 모델에는 없고 원시 상관관계와 교차 분석에만 있습니다. 어떤 관계도 표시되지 않으면 이는 이 데이터에 신호가 없을 수 있다는 위험 신호입니다.
계급 불균형: 사기, 이탈, 장비 고장 등 드문 일을 예측하는 경우 지금 기본 요율을 기록해 두십시오. 99% 정확도를 달성하는 모델은 기본 비율이 99.5%라는 사실을 깨닫기 전까지는 인상적으로 들릴 수 있습니다. 모든 데이터 과학 프로젝트에서는 상황이 중요합니다.
분석하고 관찰한 모든 내용을 실행 중인 문서로 유지하세요. ‘2023년 3월에 사용자 ID 형식이 변경되었습니다.’, ‘유럽에서 구매 금액이 달러가 아닌 유로입니다.’, ‘가입 날짜의 20%가 누락되었으며 모두 모바일 앱 사용자로부터 발생합니다.’와 같은 메모입니다. 이 문서는 나중에 데이터 유효성 검사 체크리스트가 되며 더 나은 데이터 품질 검사를 작성하는 데 도움이 됩니다.
# 3단계: 가능한 가장 간단한 기준선 구축
XGBoost, 기타 앙상블 모델 또는 최근 트렌드에 도달하기 전에 효과적이고 간단한 모델을 구축하십시오.
- 분류를 위해서는 가장 일반적인 클래스를 예측하는 것부터 시작하세요.
- 회귀의 경우 평균 또는 중앙값을 예측합니다.
- 시계열의 경우 마지막으로 관찰된 값을 예측합니다.
나중에 개선된 모델에 사용할 동일한 측정항목으로 성능을 측정하세요. 이것이 당신의 기준선입니다. 이를 능가하지 못하는 모델은 가치를 추가하지 않습니다.
그 다음에 2단계 탐색을 기반으로 간단한 경험적 방법을 구축합니다.. 고객 이탈을 예측하고 30일 동안 로그인하지 않은 고객이 거의 돌아오지 않는다는 사실을 발견했다고 가정해 보겠습니다. 이를 휴리스틱으로 만드세요. “30일 동안 로그인이 없으면 이탈을 예측하세요.” 조잡하지만 데이터의 실제 패턴을 통해 정보를 얻습니다.
다음으로 분류를 위한 로지스틱 회귀, 회귀를 위한 선형 회귀라는 하나의 간단한 모델을 구축합니다. 2단계에서 가장 유망한 기능 중 5~10개를 사용하세요. 기본 기능 엔지니어링은 괜찮지만(로그 변환, 원-핫 인코딩) 아직 특이한 것은 없습니다.
이제 정교함을 높이기 위한 세 가지 기준이 생겼습니다. 여기에 흥미로운 점이 있습니다. 선형 모델은 사람들이 인정하는 것보다 더 자주 생산됩니다. 해석 가능하고 디버깅 가능하며 빠릅니다. 목표 달성의 80%를 달성하면 이해관계자는 종종 85% 이상 달성하는 복잡한 모델보다 이를 선호하지만 실패할 때 아무도 설명할 수 없습니다.
# 4단계: 모델이 아닌 기능 반복
이것이 바로 많은 데이터 전문가가 잘못된 방향으로 나아가는 지점입니다. Random Forest, XGBoost, LightGBM, 신경망 및 앙상블 앙상블 간에 동일한 기능을 유지하고 교환합니다. 그들은 한계 이익을 위해 하이퍼파라미터를 조정하는 데 몇 시간을 소비합니다. 0.3% 정도의 개선은 단지 노이즈일 수도 있습니다.
더 나은 경로가 있습니다: 간단한 모델(3단계의 기본 모델 또는 한 단계 높은 복잡성)을 유지하고 대신 기능을 반복합니다..
도메인별 기능: 해당 도메인을 이해하는 사람들과 대화하세요. 그들은 데이터만으로는 결코 찾을 수 없는 통찰력을 공유할 것입니다. “오전 2~4시 사이에 접수된 주문은 거의 항상 사기입니다” 또는 “첫 주에 지원 전화를 한 고객의 평생 가치가 훨씬 더 높은 경향이 있습니다.”와 같은 것입니다. 이러한 관찰은 특징이 됩니다.
상호작용 용어: 방문당 수익, 세션당 클릭수, 고객당 거래수입니다. 비율과 비율은 변수 간의 관계를 포착하기 때문에 원시 개수보다 더 많은 신호를 전달하는 경우가 많습니다.
시간적 특징: 마지막 구매 이후 일수, 다양한 기간에 대한 이동 평균 및 행동 변화율. 문제에 시간 구성 요소가 있는 경우 일반적으로 이러한 기능이 상당히 중요합니다.
집계: 그룹 수준 통계입니다. 이 고객의 우편번호에 대한 평균 구매 금액입니다. 이 제품 카테고리의 일반적인 주문 규모입니다. 이러한 기능은 개인 수준 기능이 놓칠 수 있는 인구 수준 패턴을 인코딩합니다.
한 번에 하나씩 또는 소그룹으로 기능을 테스트하세요.
- 성능이 의미 있게 향상되었습니까? 유지하세요.
- 그대로였나요, 아니면 더 나빠졌나요? 버리세요.
이 체계적인 접근 방식은 모델에 여러 기능을 적용하고 무언가가 유지되기를 바라는 것보다 지속적으로 우수합니다. 기능 엔지니어링을 모두 마친 후에야 더 복잡한 모델을 고려해야 합니다. 종종 그럴 필요가 없다는 것을 알게 될 것입니다.
# 5단계: 홀드아웃 세트뿐만 아니라 프로덕션에서 볼 데이터에 대해 유효성을 검사합니다.
검증 전략은 생산 조건을 최대한 가깝게 반영해야 합니다. 모델이 2026년 1월의 데이터를 예측하는 경우 2024~2025년의 무작위로 샘플링된 데이터를 검증하지 마세요. 대신 2025년 11월까지의 데이터에 대해서만 학습된 모델을 사용하여 2025년 12월 데이터에 대해서만 유효성을 검사하세요.
시간 기반 분할은 거의 모든 실제 문제에 중요합니다. 데이터 드리프트는 현실입니다. 패턴이 변경됩니다. 고객 행동이 변화합니다. 무작위로 섞인 데이터에서 훌륭하게 작동하는 모델은 잘못된 분포에서 검증되었기 때문에 생산 과정에서 종종 문제가 발생합니다.
시간적 검증을 넘어 현실적인 시나리오에 대한 스트레스 테스트를 수행합니다. 다음은 몇 가지 예입니다.
누락된 데이터: 훈련에서는 특성의 95%가 채워질 수 있습니다. 프로덕션에서는 API 호출의 30%가 시간 초과되거나 실패할 수 있습니다. 당신의 모델은 아직도 작동하나요? 예측도 할 수 있나요?
유통교대: 훈련 데이터에 10% 클래스 불균형이 있을 수 있습니다. 지난 달에는 계절성이나 시장 변화로 인해 이 비율이 15%로 변경되었습니다. 성능은 어떻게 변하나요? 아직도 받아들일 수 있나요?
지연 시간 요구 사항: 모델이 유용하려면 100ms 이내에 예측을 반환해야 합니다. 그 기준을 충족합니까? 매번? 일반 트래픽의 10배를 처리하는 최대 로드 시에는 어떻습니까?
엣지 케이스: 기록이 없는 신규 사용자는 어떻게 되나요? 최근 출시된 제품? 훈련 데이터에 표시되지 않은 국가의 사용자가 있습니까? 이것은 가설이 아닙니다. 생산 과정에서 직면하게 될 상황입니다. 극단적인 경우를 처리해야 합니다.
배포하기 전에 모니터링 대시보드를 구축하세요. 모델 정확도뿐만 아니라 입력 특성 분포, 예측 분포 및 예측과 실제 결과의 상관 관계를 추적합니다. 재교육을 위해 분투해야 하는 위기가 발생하기 전에 드리프트를 조기에 파악하고 싶습니다.
# 결론
보시다시피, 이 다섯 단계는 혁명적이지 않습니다. 그들은 거의 지루하다 그들의 솔직함에서. 그것이 바로 요점입니다. 개발자가 “흥미로운” 작업에 열중하기 때문에 지루한 부분을 건너뛰면 데이터 과학 프로젝트가 실패합니다..
대부분의 문제에는 복잡한 기술이 필요하지 않습니다. 해결 중인 내용을 이해하고, 데이터를 자세히 알고, 작동하는 간단한 것을 구축하고, 체계적인 반복을 통해 개선하고, 지저분한 생산 현실에 대해 검증해야 합니다.
그것이 바로 그 일이다. 항상 흥미로운 것은 아니지만 결승선을 통과하는 프로젝트를 진행하는 것입니다. 즐겁게 배우고 만들어 보세요!
발라 프리야 C 인도 출신의 개발자이자 기술 작가입니다. 그녀는 수학, 프로그래밍, 데이터 과학, 콘텐츠 제작의 교차점에서 일하는 것을 좋아합니다. 그녀의 관심 분야와 전문 분야에는 DevOps, 데이터 과학, 자연어 처리가 포함됩니다. 그녀는 읽기, 쓰기, 코딩, 커피를 즐깁니다! 현재 그녀는 튜토리얼, 방법 가이드, 의견 등을 작성하여 개발자 커뮤니티에서 자신의 지식을 학습하고 공유하는 데 힘쓰고 있습니다. Bala는 또한 매력적인 리소스 개요와 코딩 튜토리얼을 만듭니다.



Post Comment