공부/AI와 데이터

AI와 데이터 기초 - 4

2월2 2024. 7. 11. 22:34

AI와 데이터 기초1 - 4일차

데이터 시각화

데이터 시각화의 정의

  • 사람의 시각 및 이해도
    • 사람은 긴 글보다 요약된 내용을 선호
    • 글자보다 임팩트 있는 시각 요소에 집중
    • 데이터 원자료나 통계표는 수많은 숫자와 문자로 구성됨으로 내용 파악이 어려움
  • 데이터 시각화
    • 일반적인 데이터를 차트, 그래프, 지도와 같이 이해하기 쉬운 시각적 요소로 표현하는 것
    • 많은 양의 데이터를 빠르게 분석

데이터를 시각화하는 이유

  • 많은 양의 데이터를 빠르게 분석할 수 있음
  • 시각 요소르 통해 데이터를 명확히 전달할 수 있음
  • 추세와 경향성이 쉽게 드러나 이해가 쉬움
  • 새로운 패턴을 발견하기도 함
  • 항목간의 관계를 발견할 수 있음
  • 데이터에 숨어 있는 트렌드를 찾아낼 수 있음

상황에 맞는 차트 선택 방법

막대 차트 (Bar Chart)

  • 데이터의 트랜드를 파악할 때 유용
  • 데이터의 순위를 비교할 때 유용
  • 참고사항 :
    • 비교 데이터가 많다면 수평 막대가 유용
    • 순위를 강조하고 싶다면 정렬(오름차순/내림차순)하여 표현
    • 데이터를 구분하고자 한다면 데이터별로 다른 색상을 지정

분산형 차트 (Scatter Chart)

  • 직교 좌표계를 이용하여 좌표사의 점들을 표시
  • 두 개의 데이터(변수)간의 관계를 나타낼 때 유용
  • 분포 양상을 비교할 때 유용
  • 참고사항 :
    • 데이터(변수) 간의 관계를 명확하게 표현하고 싶다면 추세선을 사용
    • 변수의 관계가 2개 이상일때는 색상으로 표현

선 차트 (Plot Chart)

  • 데이터 트렌드의 변화를 비교할 때 유용
  • 시간의 흐름에 따른 데이터 변화를 확인하고자 할 때 유용
  • 참고사항 :
    • 선의 개수는 한눈에 파악할 수 있을 정도로만
    • 데이터 구분을 위해 색상 활용
    • 데이터값이 과장되지 않도록 세로축의 눈금 및 범위는 적절히

파이 차트 (Pie Chart)

  • 데이터 간의 비율을 파악할 때 활용
  • 데이터 간의 상대적 크기를 비교할 때 활용
  • 참고사항 :
    • 핵심 전달을 위해 조각 개수는 한눈에 보일 정도로만
    • 명확한 크기를 위해 조각을 큰 순서대로 배열하는 것이 효율적임
    • 강조하고자 하는 핵심 정보만 표시

워드클라우드(WorldCloud)

  • 서술형 데이터를 분석할 때 활용
  • 빈도, 중요도가 높은 텍스트를 강조할 때 유용
  • 참고사항 :
    • 빈도가 낮은 단어들은 제외하여 표현
    • 의미없는 단어는 제거하여 표현

지도 차트

  • 데이터를 지리적으로 비교할 때
  • 시간별 지리적 데이터 변화를 확인할 때
  • 참고사항 :
    • 데이터에 맞는 지도 배경 사용

데이터 시각화를 위한 대표 라이브러리(matplotlib)

  • matplotlib(mat + plot + lib)
    • 데이터를 다양한 형태의 차트로 그려주는 데이터 시각화 패키지
    • 설치 : pip install matplotlib
  • 라이브러리 선언
    • import matplotlib.pyplot as plt

데이터 시각화를 위한 대표 라이브러리(seaborn)

  • seaborn 라이브러리
    • matplotlib 위에서 동작되는 시각화 라이브러리
    • 22종의 데이터 셋 제공
    • matplotlib에 비해 손쉽게 그래프를 그리고 스타일을 설정할 수 있음
  • seaborn 라이브러리 선언
    • import matplotlib.pyplot as plt
    • imporst seaborn as sns

데이터 시각화 (plot 차트 중심)

시각적으로 분석하며 질문에 답하기

  • import matplotlib.pyplot as plt
    • 데이터 시각화를 지원하는 라이브러리
  • 한글 지원을 위한 코드 실행 필요 (Colab의 경우)
    • !pip install koreanize-matplotlib
    • import koreanize_matplotlib

plot 차트 생성하기

  • plt.plot(데이터, 속성들)
    • 데이터 : x축과 y축에 표현할 데이터들
      • plot차트의 경우 y축만으로도 데이터 표현 가능
    • label='범례이름' : 선이 여러 개인 경우 각 선의 이름을 차트 내에 표시
    • marker='마커종류': 선 위에 표현할 마커 모양 설정
    • markersize=정수 : 마커의 크기 변경
    • linestyle='선종류': 선의 모양 설정
    • linewidth=정수 : 순 두께 설정
    • color='색상': 선 색상 설정
    • color, marker, linestyle 순으로 약식 표현 가능

차트 꾸며보기

  • 차트 추가 함수들
    • plt.show() : 데이터를 이용한 차트 결과를 출력
    • plt.legend() : 지정한 범례(label)를 차트 내에 표시
    • plt.title("차트제목") : 지정한 차트 제목을 차트 중앙 상단에 표시
    • plt.xlabel("x축제목"), plt.ylabel("y축제목") : x축과 y축의 제목을 지정한 문자열로 설정
    • plt.grid() : 차트내에 눈금선 표시
    • plt.xlim(시작값, 마지막값), plt.ylim(시작값, 마지막값) : x, y축 눈금의 범위 지정
    • plt.xticks(눈금값, 레이블), plt.yticks(눈금값, 레이블) : x, y축에 표시할 눈금 지정
      • 눈금값 : x, y축 눈금에 표시할 값
      • 레이블 : 눈금값으로 표시할 레이블로 튜플이나 리스트로 설정

bar 차트 생성하기

  • plt.bar(데이터, 속성들) : 세로 막대차트 생성
    • 데이터 : x축과 y축에 표현할 데이터들
    • width=실수 : 막대 두께 설정
  • plt.barh(데이터, 속성들) : 가로 막대차트 생서
    • plt.bar()에 'h'만 추가
    • 속성들은 유사. 단, width->height, plt.xticks()->plt.yticks()
    • height=실수 : 막대 높이 설정
  • bar 차트와 barh 차트의 공통 속성들
    • label='범례이름' : 막대 차트가 여러 개인 경우 각 막대차트의 이름을 차트 내에 표시
    • color='색상' : 막대차트의 색상 설정
    • alpha=실수 : 막대의 투명도

pie 차트 생성하기

  • plt.pie(데이터 속성들)
    • 데이터 : 데이터의 구성비를 확인하기 위한 데이터
    • labels='문자열' : 각 영역의 값을 나타내는 레이블 문자열
    • autopct='양식문자' : 비율을 나타낼 숫자 형식
    • colors=리스트 : 각 영역의 색상
    • explode=리스트 : 부채꼴이 중심에서 벗어나는 정도
  • plt.scatter(데이터, 속성들)
    • 데이터 : 분포를 확인하기 위한 열이름
    • c='색상' : 점들의 색상
    • s='크기' : 점들의 크기

Seaborn 라이브러리의 relplot 차트

  • sns.relplot(data=표이름, x='x축열이름', y='y축열이름', 속성들)
    • data = 표이름 : 차트를 생성할 데이터프레임 선택
    • x='x축열이름' : 수치형 데이터를 갖는 x축 열이름
    • y='y축열이름' : 수치형 데이터를 갖는 y축 열이름
    • hue='열이름' : 종류를 구분하기 위한 데이터의 열이름