복습 노트

데이터 분석 2

에이블러 2025. 10. 19. 13:35

< 데이터 시각화 >

데이터 시각화(Data Visualization)란 숫자와 텍스트로 이루어진 데이터를 그래프, 차트, 맵 등을 활용하여 시각적으로 표현하는 기술

주로 사용 라이브러리

-      Matplotlib: 가장 중요하고 기본적인 라이브러리, 커스터마이징 유용

n  import matplotlib.pyplot as plt

u  import numpy as np                   #이 세개는 거의 세트로 같이 씀

u  import pandas as pd

n  plt.plot(x, y, marker=’0’, linestyle=’-‘, color=’b’)   #막대그래프 그리기

u  marker : 꼭지점에 시각적 표시

u  linestyle : 실선

u  color : 라인 색

u  plt.show() : print문과 유사   #Matplotlib 전용 프린트문

-      Seaborn: 깔끔한 디자인과 강력한 기능 제공           #필수X

n  import seaborn as sns

n  sns.barplot(x=’카테고리’, y=’’, data=df)          #막대그래프 그리기

-      Plotly: 대화형(Interactive) 그래프를 지원

n  정적 그래프보다 데이터를 동적으로 탐색하는 데 적합

n  3D 그래프, 지도 사각화, 확대/축소 등 고급 기능 제공

n  import plotly.express as px

 

 

수치형(연속형) 데이터 분포 시각화 단변량

1.     히스토그램(Histogram)           #수치형 - 연속형

A.     plt.hist(data, bins=??, color=?, edgecolor=?, alpha)

       #필수    #bins(구간갯수)

2.     밀도 그래프(Density Plot)

A.     sns.kdeplot(data, shade=True, color=?)       #shade(경계선)

3.     박스 플롯(Box Plot)

A.       min-----------Q1---Q2---Q3----------max

#여기서 min, max는 이상치를 제외한 min, max   # : 이상치

B.     중앙값 Q2 / 박스Q1~Q3, IQR / 수염(최소 최대값)

C.     plt.boxplot(data, labels=[‘A’, ‘B’, ‘C’, ‘D’])

 

(수치형)시각화를 통한 인사이트 도출 이변량

1.     산점도(Scatter Plot)    #연속형 연속형

A.     plt.scatter(x, y, color=?, alpha=?, label=?)

B.     두 연속형 데이터의 관계를 확인하고 싶을 때 사용

2.     페어 플롯(Pair Plot) : 변수 간 산점도

A.     여러 변수 간의 관계를 한꺼번에 그려줌

B.     df=sns.load_dataset(“iris”)            #iris 데이터셋 활용

sns.pairplot(df, hue=’species’)

3.     히트맵(Heatmap – Seaborn 활용)         #필수X but 범주형 가능 이점

A.     corr( ) : 상관계수

sns.heatmap( )

 

★데이터가 1종류 숫자형★                                 #오늘의 핵심

n  히스토그램: plt.hist(data, bins)

n  밀도함수: sns.kdeplot(data)

n  박스: ply.boxplot(data)

★데이터가 2종류 숫자형★

n  연속 - 연속: 산점도 plt,scatter(x, y)

n  (연속 - 연속)다변수 pair plot: sns.pairplot(df, hue)

★데이터가 1종류 범주형★

n  막대: plt.bar( )

n  카운트: sns.countplot( )

n  파이: plt.pie( )

★데이터가 2종류 범주형★

n  모자이크: mosaic(crosstab.stack( ))

 

단변량 범주형 데이터 시각화

1.     막대 그래프(Bar Chart)

A.     plt.bar(x, y)

2.     카운터 플롯(Count Plot – Seaborn 활용)

A.     y축은 항상 데이터 수.

B.     sns.countplot(data)

3.     파이 차트(Pie Chart)

A.     전체에서 각 항목이 차지하는 비율을 표현

B.     plt.pie(data)

이변량 범주형 데이터 시각화 (범주 범주)

1.     모자이크 플롯(Mosaic Plot – statsmodels 활용)

A.     from statsmodels.graphics.mosaicplot import mosaic

B.     cross_tab = pd.crosstab( )    #교차표(빈도수) 생성 필수

mosaic(cross_tab.stack( ))     #안정성을 위해 stack()사용

 

시계열(날짜, 시간) 데이터 시각화

-      plt.plot(dates)                 # Line Chart

 

 

클러스터 맵(Cluster Map)

데이터를 그룹화하여 계층적 군집화 결과를 보여주는 시각화 방법

3D 스캐터 플롯 (3D Scatter Plot)

세 개의 변수 간의 관계를 3차원 공간에 점으로 표시하는 그래프

 

 

< 데이터 분석 >

EDA (탐색적 데이터 분석)

수집한 데이터 안에 어떤 정보가 들어있는지 탐색하고 이해하는 과정이다. 전체적인 특성과 패턴을 파악하는 과정.

1.     단변량 분석  #단변량이라고 컬럼이 1개인게 아니라 DF에서 하나의 컬럼만 분석해도 됨

-      숫자형 변수 (히스토그램, 밀도함수, 박스)

# plt.boxplot보다 sns.boxplot을 많이 쓰게 될 것

-      범주형 변수 (막대차트, 파이차트)   # 카운터플롯은 막대차트와 비슷(y가 필요X)

n  파이차트를 그리기 전에 value_counts 필요 #파이차트는 범주가 2~5개일 때 효과적

 

# 가설 검정

표본데이터를 이용해 모집단에 대한 주장의 진위 여부를 통계적으로 판단하는 절차

1.     가설 설정

A.     귀무가설(H0) : 변화 없음, 차이 없음.(기본 존재 가정).

B.     대립가설(H1) : 변화 있음, 차이있음. (나의 주장)

2.     유의수준 결정 (a)

-      귀무가설이 참일 때 오류를 어디까지 허용할래?’’ 결정하는 것

3.     검정방법 결정

4.     검정통계량 계산

5.     채택/기각 여부 판단

A.     p-value 값이 작을수록 좋다       # 유의수준보다 작으면 내 주장 채택 #

 

2.     이변량 분석

A.     숫자형-숫자형          # 즉 연속형-연속형

                       i.        산점도              # 그래프

                      ii.        상관계수(Correlation Coefficient): 관계의 방향성(+,-)과 강도(+1,-1,0)를 수치화

                     iii.        상관분석에 scipy 이용     # from scipy.stats import pearsonr

B.     범주형-숫자형

                       i.        막대 그래프

                      ii.        박스 플롯                    

#박스는 수치형만 가능하지만 숫자형을 범주별로 나눠서 박스를 각각 그릴 수 있다.

                     iii.        두 개의 집단간에 비교할 땐 (독립표본)T-검정 통계 모형을 사용        

#이유 없음 그냥 정해진거임   # from scipy.stats import ttest_ind

                     iv.        세 개 이상의 집단 간 평균 차이 비교 : 일원분산 분석(ANOVA)

C.     범주형-범주형

                       i.        변수 간에 연관성이 있는지 확인하는 데 사용

                      ii.        누적 비율 막대 그래프

                     iii.        교차                 # pd.crosstab( )

                     iv.        카이제곱 검정    #from scipy.stats import chi2_contingency

 

D.     숫자형-범주형         # 범주형-숫자형 과 같다. 차이X

                       i.        히스토그램 + KDE plot   # t검정 사용?

 

< 데이터 수집 >

내부 데이터(Internal Data)

-      ERP: 기원의 자원 관리 시스템(구매, 생산, 재고, 인사 등)

-      CRM: 고객 관계 관리(고객 정보, 구매 이력, 상담 기록, 고객 반응)

-      로그 데이터: 방문자 수 클릭 데이터(보안 관리, 성능 분석, 모니터링)

외부 데이터(External Data)

-      API: 인증키 같은 존재

-      오픈 데이터: 공개된 공짜 데이터

-      웹 크롤링: 인터넷 상 정보를 자동 수집

데이터 파이프라인(Data Pipeline): 데이터를 수집→처리→저장(→분석)하는 전체 과정 흐름

 

데이터 관리의 원칙

1.     데이터 품질 유지

2.     데이터 보안 및 개인정보 보호

3.     데이터 거버넌스

4.     실시간 데이터 처리 및 업데이트

 

API

공공데이터 포털(Open Data Portal): 정부 및 공공기관에서 제공하는 데이터에 누구나 접근 가능한 플랫폼

# json 파일 형식은 파이썬에서 dictionary 와 생긴 모양이 닮았다. (json은 파이썬 형식은 아님)

requests json 라이브러리를 이용하여 json파일을 파이썬에서 사용할 데이터로 만듦

 

웹 크롤링

requests BeautifulSoup 라이브러리 이용 HTML을 파이썬에서 읽을 수 있게 파싱(파이썬 객체로 변환)                

# .stripped 매서드: 공백 제거

 

'복습 노트' 카테고리의 다른 글

딥러닝  (0) 2025.11.05
머신러닝  (0) 2025.10.25
데이터 분석 1  (0) 2025.10.18
파이썬 기초  (0) 2025.10.16
DX의 이해  (0) 2025.10.14