내일배움캠프_QAQC 1기/TIL

[01/03] TIL_강의, 세션

이지응:) 2025. 1. 3. 21:40
데이터 전처리&시각화 강의

데이터 시각화.ipynb
0.64MB

 

오늘은 데이터 전처리&시각화의 4주차를 수강하였습니다.

4주차의 내용은 데이터 시각화하는 방법입니다.

 

데이터 시각화의 목적

1. 패턴 발견 및 이해

데이터 시각화는 데이터 내의 숨겨진 패턴을 발견하고 이해하는 데 도움을 줌

그래프나 차트를 통해 데이터의 특징을 시각적으로 파악할 수 있음

EX) 시간에 따른 매출 추이 분석, 지역별 매출 비교 분석, 제품 카테고리별 매출 분석, 고객 구매 패턴 분석

 

2. 의사 결정 지원

시각화는 복잡한 데이터를 이해하고 결정을 내리는 데 도움을 줌

시각화를 통해 정보를 면확하게 전달하여 의사 결정 과정을 지원함

EX) 마케팅 캠페인 효과 분석, 캠페인 채널별 효과 비교, 고객 반응 분석, A/B 테스트 결과 시각화

 

3. 효과적인 커뮤니케이션

시각화는 데이터 분석 결과를 다른 사람들과 공유하거나 설명할 때 유용함

데이터를 시각적으로 보여주면 이해하기 쉽고 기억하기 쉬운 형태로 전달할 수 있음

EX) 보고서와 프레젠테이션, 의사 결정자와의 논의, 다양한 대중에게의 정보 전달, 소셜미디어 및 인터넷 활용, 간결하고 효과적인 커뮤니케이션

 

 

Matplotlib

파이썬에서 시각화를 위한 라이브러리 중 하나로 다양한 종류의 그래프를 생성하기 위한 도구를 제공

2D 그래픽을 생성하는 데 주로 사용

선 그래프, 막대 그래프, 히스토그램, 산점도, 파이 차트 등 다양한 시각화 방식을 지원

그래프를 색상, 스타일, 레이블, 축 범위 등을 조절하여 원하는 형태로 시각화할 수 있음

 

 

그래프 그리기 위해 필요한 도구

1. Matplotlib.pyplot에서 plot() 활용하는 방법

import pandas as pd
import matplotlib.pyplot as plt

# 샘플 데이터프레임 생성
data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 4, 3, 2, 1]
}
df = pd.DataFrame(data)

# 선 그래프 그리기
df.plot(x='A', y='B')
plt.show()

 

2. 스타일 설정

color, linestyle, marker 등의 파라미터를 사용하여 선의 색상, 스타일, 마커를 변경할 수 있음

color : 색상은 문자열로 지정할 수 있으며 기본 색상 이름 또는 RGB 값을 직접 지정할 수 있음

linestyle : 선의 스타일은 실선(-), 대시선(--), 점선(:), 점-대시선(-.) 등으로 지정할 수 있음

marker : 마커는 데이터 포인트를 나타내는 기호로 원(o), 삼각형(^), 사각형(s), 플러스(+), 엑스(x) 등 다양한 기호로 지정 가능

ax = df.plot(x='A', y='B', color='green', linestyle='--', marker='o')

 

3. 범례 추가

legend() 메서드를 사용하여 그래프의 범례를 추가할 수 있음

#1 label
ax = df.plot(x='A', y='B', color='green', linestyle='--', marker='o', label='Data Series')

#2 legend
ax.legend(['Data Series'])

 

4. 축, 제목 입력

set_xlabel(), set_ylabel(), set_title() 메서드를 사용하여 x축과 y축의 레이블, 그래프 제목을 추가할 수 있음

ax.set_xlabel('X-axis Label')
ax.set_ylabel('Y-axis Label')
ax.set_title('Title of the Plot')

 

5. 텍스트 추가

text() 메서드를 사용하여 그래프의 특정 위치에 텍스트 추가할 수 있음

# 그래프 위치, text, 폰트 크기
ax.text(3, 3, 'Some Text', fontsize=12)

 

6. 그래프 크기 조절

plt.figure() 함수를 사용하여 Figure 객체를 생성하고, 이후에 figure 매개변수를 이용하여 원하는 크기로 설정할 수 있음

이때 그래프의 가로, 세로 크기는 inch로 설정

plt.figure(figsize=(8, 6))

 

7. 한 번에 설정

plot() 함수에 color, linestyle, marker, label 등의 파라미터로 스타일과 범례를 적용

xlabel(), ylabel(), title(), legend(), text() 함수들을 사용하여 각각의 설정을 추가

import matplotlib.pyplot as plt

# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# 그래프 그리기
plt.plot(x, y, color='green', linestyle='--', marker='o', label='Data Series')

# 추가 설정
plt.xlabel('X-axis Label')
plt.ylabel('Y-axis Label')
plt.title('Title of the Plot')
plt.legend()

# 특정 좌표에 텍스트 추가
plt.text(3, 8, 'Some Text', fontsize=12)

# 그래프 출력
plt.show()

 

 

그래프 그리기

그래프 유형 자료 유형 특징
Line Plot 연속형 데이터  데이터의 변화 및 추이를 시각화
Bar Plot 범주형 데이터 카테고리 별 값의 크기를 시각적으로 비교
Histogram 연속형 데이터 데이터 분포, 빈도, 패턴 등을 이해
Pie Chart 범주형 데이터의 비율 범주별 상대적 비율을 부채꼴 모양으로 시각화
Box Plot 연속형 데이터의 분포 중앙값, 사분위수, 최소값, 최대값, 이상치 확인
Scatter Plot 두 변수 간 관계 변수 간의 관계, 군집, 이상치 등 확인

 

1. Line Plot

선그래프는 데이터 간의 연속적인 관계를 시가고하하는 데에 적합

주로 시간의 흐름에 따른 데이터의 변화를 보여줌

import seaborn as sns

data = sns.load_dataset('flights')

data_grouped = data[['year', 'passengers']].groupby('year').sum().reset_index()

plt.plot(data_grouped['year'], data_grouped['passengers'])
plt.xlabel('year')
plt.ylabel('passengers')
plt.show()

 

2. Bar Plot

막대 그래프는 범주형 데이터를 나타내며 각각의 막대로 값의 크기를 비교하는 데에 사용

df = pd.DataFrame({
    '도시': ['서울', '부산', '대구', '인천'],
    '인구': [990, 350, 250, 290]
})
plt.bar(df['도시'], df['인구'])
plt.xlabel('도시')
plt.ylabel('인구')
plt.title('도시별 인구 수')
plt.show()

3. Histogram

히스토그램은 연속된 데이터의 분포를 보여줌

주로 데이터의 빈도를 시각화하여 해당 데이터의 분포를 이해하는 데 사용됨

import numpy as np

data = np.random.randn(1000)

plt.hist(data, bins=30)
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram')
plt.show()

4. Pie Chart

원 그래프는 전체에서 각 부분의 비율을 보여줌

주로 카테고리별 비율을 비교할 때 사용

sizes = [30, 20, 25, 15, 10]
labels = ['A', 'B', 'C', 'D', 'E']

plt.pie(sizes, labels=labels)
plt.title('Pie Chart')
plt.show()

 

 

5. Box Plot

박스 플롯은 데이터의 분포와 이상치를 시각적으로 보여줌

중앙값, 사분위수, 최솟값, 최댓값 등의 정보를 제공하여 데이터의 통계적 특성을 파악하는 데 사용

iris = sns.load_dataset("iris")

species = iris['species'].unique()

sepal_lengths_list = [iris[iris['species'] == s]['sepal_length'].tolist() for s in species]

plt.boxplot(sepal_lengths_list, labels=species)
plt.xlabel('Species')
plt.ylabel('Sepal Length')
plt.title("Box Plot")
plt.show()

 

- unique() 함수 : 중복되지 않은 값을 추출할 때 사용하는 함수

 

- Box Plot의 구성 요소

(1) 상자(Box) : 데이터의 중앙값과 사분위수를 나타냄

                        상자의 아래쪽 끝은 25%의 값, 상자의 윗쪽 끝은 75%의 값을 나타냄

                        상자의 중앙에 위치한 선은 중앙값을 나타냄

(2) 수염(Whisker) : 상자의 위 아래로 연장되는 선

                               일반적으로 1.5배의 사분위 범위로 계산되는데, 이 범위를 넘어가는 값은 이상치로 간주됨

                               수염의 끝은 최솟값과 최댓값을 나타냄

(3) 이상치(Outliers) : 수염 부분을 벗어나는 개별 데이터 포인트로 일반적인 범위를 벗어나는 값들을 의미함

                                 이상치는 박스 플롯에서 독립적으로 표시됨

 

cf) 사분위수

데이터를 4등분한 지점으로 데이터를 크기 순서대로 정렬했을 때 25%, 50%, 75%에 해당하는 위치의 값

(1) 1사분위수(First Quartlie, Q1) : 데이터의 하위25%

(2) 2사분위수(Second Quartlie, Q2) : 데이터의 중앙값

(3) 3사분위수(Third Quartlie, Q3) : 데이터의 상위 25%에 해당하는 값으로 큰 값부터 정렬했을 때 75% 지점에 위치

 

cf) 이상치

다른 데이터들과 비교했을 때 극단적으로 크거나 작은 값을 갖는 경우

이상치는 종종 실수, 실험 오류, 데이터 수집 과정에서 발생한 문제 등으로 인해 나타남

데이터의 정확성을 해치거나 모델의 성능을 왜곡시킬 수 있기 때문에 이상치를 식별하고 처리하는 것이 중요

 

 

6. Scatter Plot

산점도는 두 변수 간의 관계를 점으로 표시하여 보여주는 그래프

두 변수 간의 상관 관계를 보여주고 각 점이 데이터 포인트를 나타내며 그 점들이 어떻게 분포되어 있는지 시각적으로 확인할 수 있음

iris

plt.scatter(iris['petal_length'], iris['petal_width'])
plt.xlabel('Petal length')
plt.ylabel('Petal width')
plt.show()

 

- 상관관계

(1) 양의 상관관계 : 산점도에서 점들이 오른쪽 위 방향으로 일직선으로 분포되어 있는 경우

                             하나의 변수가 증가할 때 다른 변수도 증가하는 경향이 있음

(2) 음의 상관관계 : 산점도에서 점들이 왼쪽 위 방향으로 일직선으로 분포되어 있는 경우

                              하나의 변수가 증가할 때 다른 변수는 감소하는 경향이 있음

(3) 무상관 관계 : 산점도에서 점들이 어떤 방향으로도 일직선으로 분포하지 않고 무작위로 퍼져 있는 경우

                          두 변수 간에는 상관관계가 거의 없음

 

- 상관관계의 강도

(1) 점들의 모임 : 점들이 더 밀집된 곳은 상관관계가 더 높음

(2) 점들의 방향성 : 일직선에 가까운 분포일수록 상관관계가 강할 가능성이 높음

(3) 상관계수 계산 : 피어슨 상관계수와 같은 통계적 방법을 사용하여 상관관계의 정도를 수치적으로 계산 가능

 

- 피어슨 상관계수(Pearson correlation coefficient)

두 변수 간의 선형적인 관계를 측정하기 위한 통계적인 방법 중 하나

주로 연속형 변수들 간의 상관관계를 평가하는 데 사용

 

- 피어슨 상관계수의 특징

(1) 범위 : -1에서 1 사이의 값을 가짐

(2) 양의 상관관계 : 1에 가까울수록 강한 양의 선형관계를 나타냄

(3) 음의 상관관계 : -1에 가까울수록 강한 음의 선형관계를 나타냄

(4) 무상관 관계 : 0에 가까울수록 선형관계가 약한 관계를 가짐

 

하지만 상관성이 있다고 해서 그것이 인과관계를 의미하는 것은 아님!!

 

데이터 시각화 툴

특징/도구 Tableau Google Data Studio Amazon QuickSight
사용자 인터페이스 직관적이고 사용자 친화적 사용하기 쉽고 간단한 UI 직관적이고 쉽게 사용가능
연동 가능한 데이터 소스 다양한 데이터 소스와 연동 다양한 데이터 소스와의 연동 가능 AWS 데이터와의 연동 가능
시각화 기능 다양한 시각화 및 차트옵션 제공 다양한 시각화 기능 제공 다양한 시각화 옵션 제공
대시보드 공유/협업 공유 및 협업 기능 지원 공유 및 협업 기능 지원 공유 및 협업 기능 지원
클라우드 기반 데스크톱 및 클라우드 기능 제공 구글 클라우드 기반 AWS 클라우드 기반
확장성 확장성이 좋음 구글 서비스와 연동하여 확장 가능 AWS 생태계 내에서 확장 가능

 


 

데이터 분석 종합반 강의

 

공부한 자료 : 

https://colab.research.google.com/drive/1BGqqFjVO11QTdJbjYyE_hT9DVjVufeb5#scrollTo=GLSgBA6s6rY5

강의 자료 : [스파르타코딩클럽] 직장인을 위한 실전 데이터분석 _ 4주차

 

데이터 분석 종합반보다 앞에 파이썬 종합반, 데이터 리터러시, 데이터 전처리&시각화 강의가 더 중요하다고 하셔서 다 듣고 시간이 조금씩 남을 때마다 데이터 분석 종합반 강의를 듣고 있습니다.

오늘은 4주차 강의를 들었습니다.

 

4주차에서는 직접 가설을 세워보고 그것을 검증하는 연습을 해보았습니다.

 

데이터 분석 기본 세팅 순서

1. pandas 사용 선언하기

2. 데이터 가져오기

3. 데이터 삺보기

4. 분석에 필요한 데이터 가공하기

 

 

 

 

 

 


데이터 전처리&시각화 세션