초보자용 표본 파일

입문 실습에서 쓰는 표본 파일 두 개가 어떻게 만들어졌는지 적었다. 파일 이름을 누르면 내려받는다.

만든 날짜: 2026-09-22 · 시드: 42 · 만드는 스크립트: scripts/40_make_samples.py

1출처와 라이선스

  • 원본: NVIDIA Nemotron-Personas-Korea (Hugging Face 버전, CC BY 4.0). 100만 행, 26개 컬럼.
  • 이 폴더의 두 파일은 그 원본에서 일부 행을 뽑은 것이다. 등장하는 인물은 모두 합성된 가상 인물이다.
  • 다시 배포할 때는 위 출처를 함께 적는다.

2sample_random.parquet — 기초통계용

  • 전체 1,000,000행을 시드 42로 섞어 앞 10,000행을 잘랐다. 층화하지 않은 단순 무작위 표본이다.
  • 컬럼 26개 전부 그대로다.
  • 표본이라 성별·학력·지역 비율이 전체와 1%p 안팎 다를 수 있다.

3sample_jobs.parquet — 직무 비교·텍스트용

  • 취업자(직업이 무직이 아니고 현재 구직중이 들어가지 않은 사람) 가운데 아래 대응표에 걸리는 사람을 직무마다 최대 500명 뽑았다. 총 7,500행.
  • dept(학과)와 job(직무)은 원본에 없는 컬럼이다. 학습용으로 직업명에서 낱말을 찾아 붙였다. NVIDIA가 준 분류가 아니다.
  • 같은 사람은 한 번만 들어 있다. 데이터 설계 및 프로그래머는 두 학과에 나눠 넣었으므로 직무 이름이 두 학과에 같다. 직무를 고를 때는 dept와 job을 함께 쓴다.
  • 컬럼 18개: uuid, 인구통계 변수 11개(sex, age, marital_status, military_status, family_type, housing_type, education_level, bachelors_field, occupation, district, province), 서술문 4개(persona, professional_persona, skills_and_expertise_list, career_goals_and_ambitions), dept, job.

학과별 인원

dept 인원
고용서비스정책 1,000
기계공학 1,500
데이터경영 2,000
메카트로닉스 1,000
컴퓨터공학 2,000

직무별 인원과 규칙

dept job 인원 직업명에 들어가는 낱말 제외 낱말
기계공학 기계공학 기술자 500 기계공학 기술자, 플랜트공학 기술자, 냉난방·공조공학 기술자, 금형공학 기술자 -
기계공학 용접 500 용접원, 용접기 조작원 -
기계공학 금형·공작기계 500 금형원, 공작기계 금형공학
메카트로닉스 로봇 500 로봇 -
메카트로닉스 제어·계측 500 제어장치 설치, 계측 제어 기술자 -
컴퓨터공학 소프트웨어 개발 500 소프트웨어 프로그래머, 웹 프로그래머, 모바일 애플리케이션 프로그래머, 게임 프로그래머, 시스템 소프트웨어 -
컴퓨터공학 정보 보안 500 정보 보안 전문가, 보안 관제원 -
컴퓨터공학 네트워크·시스템 500 네트워크 시스템 개발자, 네트워크 프로그래머, 컴퓨터 시스템 설계 -
컴퓨터공학 데이터 설계·프로그래밍 500 데이터 설계 및 프로그래머 -
데이터경영 데이터 분석 500 데이터 분석가, 통계 사무원, 데이터 관리 및 운영자 -
데이터경영 마케팅·기획 500 마케팅 전문가, 상품 기획자, 경영 기획 사무원 -
데이터경영 경영 컨설팅·품질 500 경영 컨설턴트, 품질 관리 사무원 -
데이터경영 데이터 설계·프로그래밍 500 데이터 설계 및 프로그래머 -
고용서비스정책 인사·노무 500 인사 및 노무 사무원, 인사 관리자, 노무사, 인사 컨설턴트, 노사 관련 전문가 -
고용서비스정책 사회복지 500 사회복지사, 사회복지 관련 -

대응표 원본은 data/job_map.csv이고, 바꾸려면 그 파일을 고치고 스크립트를 다시 돌린다.

4표본을 뽑은 방식 자세히

단순 무작위 추출과 층화 추출

표본을 뽑는 기본 방법은 두 가지다.

방법 뽑는 순서 결과
단순 무작위 추출 전체를 한꺼번에 섞어 필요한 수만큼 자른다. 비율이 대체로 맞지만 우연히 조금 어긋날 수 있다.
층화 추출 전체를 성별·지역 같은 변수로 먼저 나누고(이렇게 나눈 무리를 층이라 한다), 층마다 정해 둔 수만큼 뽑는다. 층으로 삼은 변수의 비율은 정해 둔 대로 나온다.

두 파일에 쓴 방식

  • sample_random.parquet는 단순 무작위 추출로 뽑았다. 층을 나누지 않았기 때문에 성별·학력·지역 비율이 전체와 1%p 안팎 다를 수 있다. 성별로 층화했다면 성별 비율만큼은 전체와 똑같이 맞출 수 있었다.
  • sample_jobs.parquet는 직무를 층으로 삼은 층화 추출에 가깝다. 다만 직무별 실제 인원 비율을 따르지 않고 모든 직무에서 똑같이 500명씩 뽑았다(후보가 모자라면 있는 만큼). 그래서 이 파일로는 어느 직무에 사람이 더 많은지 알 수 없다. 직무끼리 특성을 비교하는 데 쓴다.

두 학과에 나눠 넣은 직무

데이터 설계 및 프로그래머는 컴퓨터공학·데이터경영 두 학과에 모두 대응한다. 한 사람이 두 번 들어가지 않도록 아래 순서로 뽑았다.

  1. 직업명에 데이터 설계 및 프로그래머가 들어간 취업자 전체를 후보로 삼는다.
  2. 컴퓨터공학 몫은 후보를 무작위로 섞어 500명을 뽑는다.
  3. 데이터경영 몫은 앞에서 뽑힌 사람을 후보에서 뺀 뒤, 남은 사람을 다시 섞어 500명을 뽑는다.

두 학과 몫 모두 무작위로 뽑혔고 겹치는 사람은 없다. 후보에서 1,000명을 무작위로 뽑아 500명씩 나눈 것과 통계적으로 같다.

두 집단은 직업이 같은 사람들을 무작위로 가른 결과다. 학과 이름만 다를 뿐 원래부터 특성이 다른 사람들이 아니다. 그러니 두 집단을 비교해도 우연 수준의 차이만 나와야 정상이다. 직무를 고를 때 dept와 job을 함께 써야 하는 것도 이 때문이다.