본문 바로가기
Python/Data analysis

데이터 분석과 오픈소스

by curious week 2025. 10. 3.

오픈소스 기반 데이터분석


1) 데이터 분석의 정의와 중요성

핵심 정의

  • 데이터 분석: 데이터를 정리·처리·변환하여 유의미한 정보(인사이트) 를 도출하고 의사결정에 활용하는 일련의 과정.

왜 중요한가

  • 인사이트·가치 창출: 숨은 패턴/원인 파악 → 신규 기회 발굴.
  • 프로세스 개선: 비효율 제거, 비용·시간 절감.
  • 사회 문제 해결: 공공 보건, 교통, 치안 등 정책 의사결정 지원.
  • 데이터 기반 의사결정: 직관·경험 의존에서 근거 기반으로 전환.

실무 예시

  • PHM(예지보전): 계측 → 모니터링(이상탐지) → 진단(원인/영향) → 예측(고장 가능성) → 개선(정비 전략).
  • 도메인별: 개인화 마케팅, 대출 자동화, 스포츠 머니볼, 스마트 팩토리, 의료 맞춤 치료, 교통 신호 최적화 등.

2) 데이터 분석 과정(주요 단계·목적·방법)

전체 프레임: 수집/저장 → 전처리 → EDA/통계/모델링 → 시각화 → 인사이트 도출/커뮤니케이션

(1) 데이터 수집·저장

  • 목적 설정: 분석 목표/가설 명확화.
  • 출처 결정: 내부(거래, 로그) / 외부(공공데이터, SNS, 연구통계).
  • 수집 방법: 파일/DB, API, 웹 스크래핑, 센서(IoT).
  • 저장 고려: 품질(정확성·완전성), 적합성, 보관 구조(스키마/포맷).

(2) 데이터 전처리

  • 정제: 결측치·이상치·불일치 제거/보정.
  • 변환: 정규화/표준화, 형 변환, 파생 변수 생성.
  • 축소: 샘플링, 차원 축소, 군집 기반 요약.
  • 통합: 이질 출처 결합(키 매칭, 스키마 정렬).

목표: 분석 가능한 상태로 만드는 것(쓰레기 입력 → 쓰레기 출력 방지).

(3) 데이터 분석(EDA·통계·ML/DL)

  • EDA(탐색적 분석): 분포·이상치·관계 파악(요약통계, 히스토그램, 산점도).
  • 통계 분석: 기술통계(평균·중앙·표준편차), 상관/회귀, 가설검정(유의성).
  • 머신러닝/딥러닝: 예측/분류/군집/추천, 자동화된 의사결정 시스템.

(4) 데이터 시각화

  • 역할: 복잡한 결과를 직관적 그래프로 요약, 의사결정자 커뮤니케이션 강화.
  • 유의: 잘못된 축/왜곡 금지, 맥락·해석 포함.

3) 데이터의 특징·형태와 종류

속성(Scale) 관점

  • 질적(범주형)
    • 명목형: 순서 없음(예: 성별, 지역코드)
    • 순서형: 서열 있음(예: 만족도 1–5)
  • 양적(수치형)
    • 이산형: 정수 카운트(예: 방문 횟수)
    • 연속형: 실수 측정(예: 온도, 시간)

분석 방법 선택은 속성에 의존(예: 평균은 명목형에 부적절, 순서형은 중앙값·순위기반 선호 등).

형태(Structure) 관점

  • 정형: 표(행·열)가 있는 구조(관계형 DB, CSV) → SQL/통계·ML 적용 용이
  • 반정형: 구조 힌트가 있는 문서(JSON, XML) → 스키마 추출 후 정형화
  • 비정형: 텍스트/이미지/음성/영상 → 전처리·임베딩 등 추가 단계 필요

4) 오픈소스 소프트웨어(OSS)와 오픈데이터

개념과 철학

  • 오픈소스: 소스코드/데이터를 공개하여 접근·사용·수정·재배포를 허용하는 생태.
  • 확장: MIT OCW·MOOC(강의 공개), 공공데이터 개방 등.

장점

  • 혁신 가속: 전 세계 협업, 빠른 개선.
  • 비용 절감: 라이선스 비용↓, 벤더 종속 감소.
  • 학습·재현성: 코드·데이터 투명성으로 교육/연구 적합.
  • 지속 가능성: 기업·개인의 내/외재적 동기(명성, 채용 신호효과)로 생태 유지.

역사적 맥락(핵심 인물·사건)

  • R. 스톨먼(FSF/GNU): 자유 소프트웨어 운동 주도.
  • ‘성당과 시장’(E. Raymond): 폐쇄형 vs 개방형 개발 모델 대비, OSI 탄생에 영향.

5) 파이썬 환경과 필수 라이브러리(오픈소스)

개발 환경

  • IDLE: 기본 내장 IDE.
  • Jupyter Notebook: 셀 단위 실행·서술·시각화에 최적.
  • Google Colab: 설치 없이 웹에서 GPU/Notebook 사용.

핵심 패키지(역할 중심)

  • 수집/크롤링: Selenium(브라우저 자동화), lxml(HTML/XML 파싱)
  • 수치/배열: NumPy
  • 데이터 처리: Pandas
  • 통계모델: Statsmodels
  • 시각화: Matplotlib, Seaborn
  • 머신러닝: Scikit-learn

Tip: Pandas + Matplotlib/Seaborn + scikit-learn 조합이 표준 파이프라인. 크롤링·API 수집이 필요하면 requests/selenium 추가, 텍스트/이미지 등 비정형은 NLP/컴퓨터비전 라이브러리(예: spaCy, transformers, opencv) 확장.