단위 2 / 11

데이터 수집 및 소스 이해: 스키마, 샘플링, 품질 및 누출 인식

이득:

  • 다양한 데이터 소스(데이터베이스, API, 파일, 웹 스크래핑)와 각각의 함정을 인식하고 스키마를 올바르게 이해하는 능력
  • 표본이 모집단 및 선택 편향을 나타내는지 여부를 평가하여 반복 가능한 표본 추출을 수행하는 기능
  • 각 열에 '예측 시점에 보유하게 될까요?'라는 질문을 질문하여 수집 단계에서 데이터 유출을 제거하고 법적/윤리적 경계를 관찰하는 능력.

모든 분석은 수집한 데이터의 품질만큼 우수합니다. 세계에서 가장 발전된 모델이라도 잘못 수집되거나 편향적으로 샘플링되거나 미래에 대한 정보가 포함된 데이터를 사용하면 신뢰할 수 없는 결과를 낳게 됩니다. 컴퓨터 과학에서는 이 원칙을 "가비지 인, 쓰레기 아웃"(가비지 인, 쓰레기 아웃)으로 요약합니다. 이 단원에서는 데이터 수집 단계, 즉 소스 이해, 샘플링, 품질에 대한 질문 제기, 첫날부터 데이터 유출 위험에 대한 경고를 다룹니다. 이 단계에서는 인공지능이 강력한 도움이 됩니다. SQL 쿼리를 작성하고, API 문서를 요약하고, 데이터 계약 초안을 작성합니다. 그러나 귀하가 수집하는 데이터와 해당 데이터가 귀하를 대표하는지 여부를 결정하는 것은 인간입니다.

데이터 소스 알아보기

데이터는 다양한 장소에서 나오며 각 소스에는 고유한 함정이 있습니다. 데이터베이스(테이블에 저장된 구조화된 데이터, 일반적으로 SQL로 쿼리됨)가 가장 일반적인 소스입니다. 신뢰할 수 있지만 그 계획을 잘 이해하는 것이 필요합니다. API(응용 프로그래밍 인터페이스)는 실시간 데이터를 제공하지만 속도 제한 및 형식 변경의 위험이 있습니다. 파일(CSV, Excel, JSON)은 유연하지만 형식 불일치가 발생하기 쉽습니다. 웹 스크래핑은 강력하지만 법적, 윤리적 한계가 있습니다. 모든 사이트를 스크랩할 수 있는 것은 아닙니다.

주의: 웹 스크래핑 및 자동 데이터 수집을 위해서는 사이트 이용 약관, robots.txt 파일 및 KVKK/GDPR을 준수하세요. 무단으로 데이터를 수집하면 법적 책임이 발생합니다. 정보 보안의 맥락에서, 귀하에게 승인된 시스템에서만 방어/분석 목적으로 데이터 수집 도구를 사용하십시오. 무단접근이나 스크랩을 금지합니다.

스키마 이해: 데이터에 익숙해지기

데이터 세트를 수집하기 전에 해당 스키마(열 이름, 데이터 유형, 의미 및 상호 관계)를 이해해야 합니다. 여기서 AI는 각 열의 의미를 설명하는 표인 '데이터 사전'을 만드는 데 매우 유용합니다. 그러나 AI가 만들어내는 설명은 예측일 뿐입니다. 데이터를 생산한 팀과 함께 각 열의 진정한 의미를 확인하세요. 예를 들어 "status"라는 열에는 0/1/2가 포함될 수 있습니다. 원래 팀만이 이것이 "보류 중/승인/취소"인지 아니면 다른 것인지 알 수 있습니다.

다음 표에는 기본 리소스 유형과 주의 사항이 요약되어 있습니다.

소스

장점

함정

AI가 돕는 방법

SQL 데이터베이스

구조적, 신뢰성

복잡한 JOIN

쿼리 초안을 작성합니다.

API

라이브 데이터

속도 제한, 모양 변경

문서 요약, 풀 코드

CSV/엑셀

유연하고 빠르다

형식 불일치

코드 읽기/파싱

웹 스크래핑

넓은 도달 범위

법적/윤리적 한계

구문 분석 초안(권한 내)

로그/이벤트 데이터

상세한

엄청난 양

필터링 쿼리

일러스트레이션: 부분이 전체를 나타내는가?

대부분의 경우 전체 데이터보다는 표본(모집단에서 선택한 하위 집합)을 사용하여 작업합니다. 중요한 질문은 이 표본이 모집단을 대표하는가입니다. 선택 편향이 가장 흔한 함정입니다. 예를 들어 모바일 앱의 사용자만 샘플링하는 경우 웹 사용자가 표시되지 않으며 결과가 오해의 소지가 있습니다. 대부분의 경우 무작위 샘플링(각 레코드가 선택될 확률이 동일함)이 가장 안전합니다. 그러나 시계열 데이터에서는 분할이 무작위가 아닌 시간순으로 수행됩니다(이 내용은 단위 7과 10에서 볼 수 있음).

첫날부터 누출 인식

데이터 유출은 대부분의 재난의 원인이며 일반적으로 데이터 수집 단계에서 발생합니다. 예: '취소되었는가'를 예측할 때 데이터에 '취소 날짜' 열을 추가하면 모델은 미래를 조사합니다. 수집 단계에서 각 열에 대해 하나의 질문을 하십시오. "예측을 할 때 실제로 이 정보를 갖게 될까요?" 대답이 '아니요'이면 해당 열이 누출되고 있는 것입니다. 이 주제는 10단원에서 자세히 다룰 것입니다. 하지만 인식은 첫날부터 시작되어야 합니다.

세 개의 미니 케이스

사례 1 - 표현의 문제. 한 은행은 신용 위험 모델에 대해 승인된 대출에 대해서만 데이터(18,500개 기록)를 수집했습니다. 거부 사항은 데이터에 없었습니다. 이 모델은 거부된 개체가 어떻게 행동할지 전혀 확인하지 못했기 때문에 실제 세계에서는 잘못된 것이었습니다. 교훈: 표본은 결정을 내리는 전체 모집단을 대표해야 합니다.

사례 2 - 자동 양식 변경. 팀은 매일 API에서 가격 데이터를 가져오고 있었습니다. 어느 날 API 제공업체가 통화를 USD에서 EUR로 변경했지만 도메인 이름은 그대로 유지되었습니다. 12일 동안 잘못된 단위로 데이터가 수집되었습니다. 3,200개의 라인이 손상되었습니다. 교훈: API 데이터의 볼륨과 형식 일관성을 정기적으로 확인하세요.

사례 3 - 조기 누출. 분석가는 "이탈" 추정을 위한 데이터를 수집할 때 "계정 폐쇄 이유" 열을 포함했습니다. 이 열은 고객이 떠난 후에만 채워졌습니다. 모델은 테스트 세트에서 97%의 정확도를 보였습니다. 예측 시 해당 열이 비어 있었기 때문에 프로덕션에서는 작동하지 않았습니다. 교훈: 각 열에 "예측 당시에 그것을 가지고 있습니까?"라는 질문을 하십시오.

복사 가능한 템플릿 4개

1) 데이터 사전 추출:

귀하의 역할: 데이터 과학자 보조자. 아래는 테이블의 컬럼 이름과 샘플(익명) 값입니다. 각 열에 대해 예상 의미, 데이터 유형 및 잠재적인 품질 위험을 표에 나열합니다. 확실하지 않은 열을 "확인 필요"로 표시하십시오. 만들기를 의미합니다.열: [여기에 붙여넣기]

2) 샘플링 코드(무작위, 반복 가능):

팬더 df가 있습니다. 200,000개의 행에서 대표 5% 무작위 샘플을 추출하는 코드를 작성합니다. 재현성을 위해 random_state=42를 사용하십시오. 표본의 클래스 분포가 모집단과 유사한지 확인하는 코드를 추가합니다.

3) 누출 검사 질문:

이 열 목록을 알려 드리겠습니다. 내 목표는 "취소 여부"(0/1)를 예측하는 것입니다. 각 열에 대해 예측 당시 실제로 가질 것인지 평가하고 "안전함/의심함/유출"로 표시합니다. 당신의 근거를 한 문장으로 쓰세요. 열: [목록]

4) SQL 풀 쿼리 초안:

PostgreSQL에 "주문" 및 "고객" 테이블이 있습니다. 지난 90일간의 주문을 고객 도시와 결합하여 도시별 총 주문 금액과 주문 수를 반환하는 JOIN 쿼리를 작성하세요. 날짜 필터와 NULL 도시를 처리하는 방법을 설명하세요. 쿼리를 실행하여 확인해 보겠습니다.

약한 프롬프트 / 강한 프롬프트

약한 프롬프트:

이 데이터베이스에서 좋은 샘플 데이터를 가져오세요.

"좋다"는 것은 모호합니다. 어느 그림, 어느 시대, 어느 크기, 어느 목적인지는 명확하지 않습니다. AI는 일반적이고 잘못된 쿼리만 생성합니다.

강력한 프롬프트:

귀하의 역할: SQL 도우미. "거래" 테이블이 있습니다: 열 ID, 고객_ID, 날짜(타임스탬프), 금액(숫자), 채널(텍스트: '웹'/'모바일'). 작업: 2024년에 각 채널에서 10,000개의 대표 행을 반환하는 반복 가능한(ORDER BY를 사용하여 결정적) 쿼리를 작성합니다. 목적: 채널 비교 분석. 쿼리의 가정을 나열하십시오.

여기서는 테이블, 목적, 크기 및 반복성이 명확합니다.

일반적인 실수

  • 표본의 대표성에 의문을 제기하지 않습니다. 쉽게 접근할 수 있는 데이터는 정확한 데이터가 아닙니다. 선택 편향은 결과를 왜곡합니다.
  • 열 의미를 AI에 적용합니다. 소스 팀은 그 의미를 알고 있습니다. 확인하지 않고 AI 예측을 사용하지 마십시오.
  • API 형식/단위 변경을 추적하지 않습니다. 자동 변경은 며칠 동안 손상된 데이터를 수집합니다.
  • 수집 단계에서 누출을 무시합니다. "예측 시점에 내가 갖고 있는 것이 있는가"라는 질문을 조기에 묻지 않으면 모델은 잘못된 성공을 제공하게 됩니다.
  • 승인되지 않거나 불법적인 데이터를 수집합니다. robots.txt, 이용 약관 및 KVKK를 위반하는 것은 심각한 위험입니다.
팁: 소스, 가져오기 날짜, 행 수, 알려진 경계, 유출 위험이 있는 열 등 각각의 새로운 데이터 소스에 대해 한 페이지로 구성된 "데이터 카드"를 유지하세요. 이 카드는 "이 데이터는 무엇이었습니까?"라는 질문과 몇 달 후의 재현성을 저장합니다.

요약하면

분석의 품질은 수집된 데이터의 품질에 따라 제한됩니다. 소스(데이터베이스, API, 파일, 스크랩)와 스키마를 잘 알고 있어야 합니다. 표본이 모집단을 대표하는지 확인하십시오. 각 열에 "예측 시점에 해당 정보가 있습니까?"라고 질문하여 첫날부터 누출을 제거합니다. AI는 쿼리 및 문서 작업을 위한 훌륭한 가속기이지만 수집할 데이터와 그 대표성은 인간이 결정합니다. 권한의 한계, 법률 및 기밀 유지가 항상 최우선입니다.

응용과제

자신의 비즈니스 또는 가상의 데이터 소스를 선택합니다. 위의 "데이터 사전 추출" 템플릿을 사용하여 AI에서 데이터 사전 초안을 가져옵니다. 그런 다음 각 열을 수동으로 평가하여 유출되었는지 확인합니다. 의심/유출 열을 하나 이상 찾아보고 그것이 위험한 이유를 한 문장으로 적어 보십시오.

체크리스트

  • [ ] 소스팀과 함께 데이터 소스와 스키마를 확인했나요?
  • [ ] 표본이 모집단을 대표하는지 확인했습니까?
  • [ ] 각 열에 "견적시에는 받을 수 있나요?"라는 질문을 하였는가?
  • [ ] 샘플링을 반복 가능하게 만들었습니까(고정 시드)?
  • [ ] 법적/윤리적(권한, robots.txt, KVKK) 수집한도를 확인했나요?