Coding/Python

[Python] 데이터 μ‹œκ°ν™”

κΉ€μœ λ‹ˆμ½˜ 2022. 3. 16. 17:39

데이터 μ‹œκ°ν™” λͺ©μ 

  • 데이터 탐색을 ν•  λ•Œ κ°€μž₯ 많이 μ‚¬μš©ν•˜λŠ” 것이 μ‹œκ°ν™”
  • λ°μ΄ν„°μ˜ 크기λ₯Ό λΉ„κ΅ν•˜λŠ” 것 
  • μˆ˜μΉ˜κ°’μ„ ν•˜λ‚˜μ”© λ³΄λŠ” 것보닀 그림을 보면 데이터에 μ‘΄μž¬ν•˜λŠ” νŒ¨ν„΄μ„ μ‰½κ²Œ μ•Œμ•„λ³Ό 수 있음
  • 데이터 뢄석 κ²°κ³Ό 뿐만 μ•„λ‹ˆλΌ μ •ν™•ν•œ 뢄석을 μœ„ν•΄ 데이터 탐색 λ°©λ²•μœΌλ‘œ ν™œμš©
  • λΆ„μ„μ‹œμ— μ΅œμ ν™”λœ 데이터 ꡬ쑰둜 뢄석을 μš”ν•  경우 κΈˆμ „μ μΈ νš¨κ³Όκ°€ 창좜

 

κΈ°μ‘΄ λΆ„μ„κ³Όμ˜ 차별점 

  • λŒ€μš©λŸ‰ 데이터λ₯Ό μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ μž₯비빨이 ν•„μš”

 

데이터 μ‹œκ°ν™” ν”„λ‘œμ„ΈμŠ€ 

  • 상황을 이해해야 함 
    • λˆ„κ°€ λ³΄λŠ” 것인지? 무엇을 λ³΄λŠ” 것인지? μ–΄λ–»κ²Œ λ³΄λŠ” 것인지? λˆ„κ΅¬λ₯Ό λŒ€μƒν•˜λŠ” 것인지?
  • μ ν•©ν•œ μ‹œκ°ν™” 방법 선택
  • λΆˆν•„μš”ν•œ μš”μ†Œ 제거 (κ°€μž₯ μ€‘μš”)
  • μ›ν•˜λŠ” 곳에 μ§‘μ€‘ν•˜λ„λ‘ μœ λ„
  • 결과적으둜 ν•˜λ‚˜μ˜ μŠ€ν† λ¦¬κ°€ λ§Œλ“€μ–΄μ§ 
  • κ²°λ‘  : λ°μ΄ν„°λ‘œλΆ€ν„° μˆ¨μ€ 이야기λ₯Ό λ°œκ²¬ν•˜λŠ” 것이 μ€‘μš” 

 

κ°„λ‹¨ν•œ 차트둜 데이터 νƒμƒ‰ν•˜κΈ° 

  • ν•„μš”μ„± : 그림의 κ°€μž₯ 큰 κ°€μΉ˜λŠ” 우리둜 ν•˜μ—¬κΈˆ κ²°μ½” μ˜ˆμƒμΉ˜ λͺ»ν–ˆλ˜ 것을 μ–΄μ©” 수 없이 λ°œκ²¬ν•˜λ„λ‘ ν•˜λŠ”λ° μžˆλ‹€.(John W. Tukey)  

μ‹œκ°ν™” κΈ°λ³Έ 원칙 

 

데이터 집산

  • 데이터 뢄석 및 μ‹œκ°ν™”μ— κ΄€λ ¨ν•˜μ—¬ λ¨Όμ € 전체λ₯Ό 훑어보고 μ›ν•˜λŠ” 방에 따라 ν™•λŒ€/μΆ•μ†Œν•˜λΌ 

 

데이터 집산을 μœ„ν•œ μ˜ˆμ‹œ 

 

 

데이터 ꡬ뢄

  • μ •ν˜• 데이터: μ›μ‹œ 데이터λ₯Ό κ°€κ³΅ν•˜μ—¬ ν™œμš© κ°€λŠ₯ν•œ ν˜•νƒœμ˜ μ •λ³΄λ‘œ λ³€ν™˜ν•˜μ—¬ λ§Œλ“€μ–΄ λ‚Έ 데이터 
    • eg. λ¬Έμ„œ λ‚΄ ν¬ν•¨λœ 긍정 단어 개수, μ›ΉνŽ˜μ΄μ§€ 방문자 평균 μ—°λ Ή, μ‹œκ°„λŒ€ μ›ΉνŽ˜μ΄μ§€ μ‚¬μš© λ°©λ¬Έ λΉ„μœ¨
  • λΉ„μ •ν˜• 데이터 : 이미지, λ¬΄μ˜λ―Έν•œ 문자λ₯Ό μˆœμ„œλŒ€λ‘œ λ‚˜μ—΄ν•œ λ°°μ—΄ ν˜•μ‹μ˜ ν…μŠ€νŠΈ, μ›Ή이지 λ°©λ¬Έ λ‚΄μ—­ 등을 λͺ¨μ•„λ‘” 데이터 
  • λ²”μ£Όν˜• 데이터 : κ°€λŠ₯ν•œ λ²”μ£Ό λ‚΄μ˜ κ°’λ§Œ μ·¨ν• μˆ˜ 있음. eg. λͺ©λ‘, μ—΄κ±°, μš”μΈ, λͺ…λͺ©, λ‹€ν•­ν˜• 데이터
  • μˆ˜μΉ˜ν˜• 데이터 : 데이터λ₯Ό 집산할 수 μžˆλŠ” κΈ°μ€€(ν•©μ‚°, 평균, 쀑앙값 λ“±) 

 

데이터 μ‹œκ°ν™” 및 μ’…λ₯˜ 

 λͺ©μ μ— λ”°λ₯Έ 차트 선택 방법 : 

 

산점도(Scatter Plot)

  • 데이터λ₯Ό xμΆ•κ³Ό y좕에 점으둜 ν‘œν˜„ν•œ 데이터 κ°„μ˜ 관계 ν‘œν˜„μ— 적합
  • 탐색적 데이터 뢄석을 μœ„ν•œ ν›Œλ₯­ν•œ 도ꡬ
  • 두 λ³€μˆ˜ μ‚¬μ΄μ˜ 관계(상관관계)λ₯Ό μ‹œκ°ν™”ν•˜λŠ” κ°€μž₯ 기본적인 방법
    • λ³€μˆ˜ 사이에 μ‘΄μž¬ν•˜λŠ” 관계λ₯Ό μ„€λͺ…ν•˜λŠ”λ° 유용
    • λ°μ΄ν„°μ˜ μΆ”μ„Έ λ˜λŠ” 상관관계λ₯Ό μ‹λ³„ν•˜λŠ”λ° μ‚¬μš©
    • μ˜ˆμ‹œ. λ‚˜μ΄μ™€ μ†Œλ“ (연속 κ°’μœΌλ‘œ 된 두 λ³€μˆ˜μ˜ 관계λ₯Ό ν‘œν˜„ν•  λ•Œ μ‚¬μš©)
  • 산포도
    • 데이터가 μ€‘μ‹¬μœΌλ‘œλΆ€ν„° μ–Όλ§ˆλ‚˜ 멀리 νΌμ ΈμžˆλŠ”μ§€ μΈ‘μ •ν•˜λŠ” κ°’
      • 쀑심경ν–₯ 기초 ν†΅κ³„λŸ‰μœΌλ‘œ 쀑심 μΈ‘μ • ν›„ μžλ£Œκ°€ μ–Όλ§ˆλ‚˜ 멀리 λΆ„ν¬λ˜μ–΄μžˆλŠ”κ°€ μΈ‘μ •
      • 뢄석, ν‘œμ€€νŽΈμž, μ‚¬λΆ„μœ„ 편차, 변동 κ³„μˆ˜ λ“±μœΌλ‘œ νŒŒμ•… κ°€λŠ₯ 

 

파이차트 

각 λ°μ΄ν„°μ˜ μƒλŒ€λ„μˆ˜λ₯Ό μ‹œκ°ν™”

λΉ„μœ¨ λ˜λŠ” λΆ€λΆ„ λŒ€ 뢀뢄을 λΉ„κ΅ν•˜λŠ”λ° 이상적

μƒλŒ€ 크기λ₯Ό ν‘œμ‹œν•˜λŠ” μ„ ν˜Έν•˜λŠ” 차트

 

λ§‰λŒ€μ°¨νŠΈ

각 데이터 κ°„μ˜ 크고 μž‘μŒμ„ 비ꡐ

λ§‰λŒ€ κΈΈμ΄λŠ” 각 그룹이 값에 λ”Έ μΈ‘μ •ν•˜λŠ” 방법을 ν‘œν˜„

μƒλŒ€μ  크기λ₯Ό ν‘œμ‹œν•˜κ³ μž ν•  경우 및 데이터가 μΉ΄ν…Œκ³ λ¦¬μ— μžˆμ„λ•Œ ꢌμž₯

단점

라벨링과 λͺ…확성이 λ„ˆλ¬΄ λ§Žμ€ λ²”μ£Όκ°€ ν¬ν•¨λ˜μ–΄ μžˆμ„λ•Œ 뢈편

 

νžˆμŠ€ν† κ·Έλž¨

각 데이터 ꡬ간별 λ„μˆ˜ λ˜λŠ” μƒλŒ€ λ„μˆ˜ ν‘œν˜„

연속 ꡬ간 λ˜λŠ” μ •μ˜λœ κΈ°κ°„ λ™μ•ˆμ˜ 데이터 뢄포λ₯Ό 높이가 닀라ㅑㄴ λ§‰λŒ€λ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό κ·Έλž˜ν”„λ‘œ ν‘œν˜„

값이 μ§‘μ€‘λ˜λŠ” μœ„μΉ˜ 및 비정상적인 값이 μžˆλŠ” 곳을 μ‹λ³„ν•˜λŠ”λ° 도움

 

λ§‰λŒ€ 차트 : 각 데이터 λ³€μˆ˜μ— λŒ€ν•œ 값을 비ꡐ

νžˆμŠ€ν† κ·Έλž¨ : 각 λ°μ΄ν„°μ˜ ꡬ간별 λ„μˆ˜ 및 μƒλŒ€ λ„μˆ˜ (eg. μ‚¬λžŒ 킀와 같이 지속적인 데이터 μžˆμ„λ•Œ good)

 

 

 

 

μƒμžκ·Έλ¦Ό (box plot)

μƒμž 및 μˆ˜μ—Όκ·Έλ¦Όμ€ μ‚¬λΆ„μœ„μˆ˜λ₯Ό ν†΅ν•œ 데이터 μ‹œκ°μ  μš”μ•½μ„ 제곡

λ°μ΄ν„°μ˜ 뢄포λ₯Ό μ§μ‚¬κ°ν˜• μƒμž λͺ¨μ–‘μœΌλ‘œ ν‘œν˜„ν•œ κ·Έλž˜ν”„

μž₯점: λ°μ΄ν„°μ˜ νŠΉμ΄κ°’λ“€μ„ μ’€ 더 λͺ…ν™•ν•˜κ²Œ λ³΄μ—¬μ€Œ. 뢄포λ₯Ό μ•Œ 수 있기 λ•Œλ¬Έμ— ν‰κ· λ§Œ λ³Ό λ•Œλ³΄λ‹€ λ°μ΄ν„°μ˜ νŠΉμ„±μ„ μ’€ 더 μžμ„Ένžˆ 이해할 수 있음 

 

 

Barplot

범주에 λ”°λ₯΄μ‹€μˆ˜κ°’μ˜ 평균과 편차λ₯Ό ν‘œμ‹œν•˜λŠ” λ§‰λŒ€κ·Έλž˜ν”„ 

νŽΈμ°¨λŠ” error bar둜 ν‘œμ‹œ 

 

μ„ κ·Έλž˜ν”„(Lineplot) 

 

νŽ˜μ–΄ν”Œλ‘―(Pair plot)

데이터 ν”„λ ˆμž„μ„ μΈμˆ˜λ‘œλ°›μ•„ grid ν˜•νƒœλ‘œ 각 μ—΄μ˜ 쑰합에 λŒ€ν•œ 산점도 ν‘œμ‹œ 

 

μ‹€μ œ 뢄포λ₯Ό 확인할 수 μžˆλŠ” κ·Έλž˜ν”„

violin plot

μ‹€μ œ 뢄포λ₯Ό 확인할 수 μžˆλŠ” κ·Έλž˜ν”„ 

μƒμž 그림을 λ³΄μ™„ν•œ ν˜•νƒœ.

Swarmplot

 

 

 

 

distplot

λΆ€λ“œλŸ¬μš΄ ν˜•νƒœμ˜ 뢄포 곑선을 λ³΄μ—¬μ£ΌλŠ” 방법

 

 

히트맡

λ§‰λŒ€λ‚˜ μ λŒ€μ‹  μƒ‰μœΌλ‘œ 데이터 κ°’ ν‘œν˜„

μ—΄ μ§€λ„λŠ” μƒ‰μ˜ λ³€ν™”λ₯Ό 톡해 데이터 차이λ₯Ό λ³΄μ—¬μ€Œ

μƒκ΄€κ³„μˆ˜κ°€ λ†’λ‹€λŠ” 것은? μ„œλ‘œ μ€‘λ³΅λœ 정보가 μ‘΄μž¬ν•œλ‹€λŠ” 의미

 

 

상관 ν–‰λ ¬

μΆ”μ„Έμ„ 

 

 

 

κ·Έλž˜ν”„ ꡬ성 

  • Figure, Axes, Axis둜 ꡬ성
    • Figure :
      그림이 κ·Έλ €μ§€λŠ” μΊ”λ²„μŠ€λ‚˜ 쒅이
      μ—¬λŸ¬κ°œ κ·Έλž˜ν”„ 적용 κ°€λŠ₯
      ν•œ 개 μ΄μƒμ˜ Axes 객체λ₯Ό 포함
    • Axes:
      두 개 μ΄μƒμ˜ Axis 객체λ₯Ό 포함
      AxisλŠ” κ°€λ‘œμΆ•μ΄λ‚˜ μ„Έλ‘œμΆ•:
      • Axis
      • x, y label
      • title
      • legend

 

도식화와 μ‹œκ°ν™” μ£Όμš”API

  • matplotlib
  • seaborn