- 그래프
- 데이터를 보기 쉽게 그림으로 표현
- 추세와 경향성이 드러나 데이터의 특징을 쉽게 이해할 수 있음
- 새로운 패턴 발견, 데이터의 특징을 잘 전달
- 다양한 그래프가 존재(2차원, 3차원, 지도 그래프, 네트워크 그래프, 모션 차트 등등)
- seaborn 패키지: 그래프를 만들 때 자주 사용되는 패키지로 코드가 쉽고 간결함
- 산점도(scatter plot)
- 데이터를 x축과 y축에 점으로 표현한 그래프
- 나이와 소득처럼 연속값으로 된 두 변수의 관계를 표현할 때 사용
#산점도 만들기
#x축은 displ,y축은 hwy
sns.scatterplot(data=mpg,x='displ',y='hwy');
#x축 범위를 3~6,y축 범위를 10~30으로 제한
sns.scatterplot(data=mpg,x='displ',y='hwy')\
.set(xlim=[3,6],ylim=[10,30]);
#drv별로 표식 색깔 바꾸기
# sns.scatterplot(data=mpg.query('manufacturer=="hyundai"'),x='displ',y='hwy',hue='drv');
sns.scatterplot(data=mpg,x='displ',y='hwy',hue='drv');
- 막대그래프(bar chart)
- 데이터의 크기를 막대의 길이로 표현
- 집단 간의 차이를 표현할 때 사용
- 빈도 막대 그래프: 여러 집단의 빈도를 비교
#평균 막대 그래프 만들기
#집단별 평균표 작성(seaborn에서 출력하기 위해서는 값이 변수에 담겨있어야함, as_index 필수)
df_mpg=mpg.groupby('drv',as_index=False)\
.agg(mean_hwy=('hwy','mean'))
#막대그래프 그리기
sns.barplot(data=df_mpg,x='drv',y='mean_hwy');
#크기순 정렬하기
#데이터 프레임 정렬
df_mpg=df_mpg.sort_values('mean_hwy',ascending=False)
sns.barplot(data=df_mpg, x = 'drv', y='mean_hwy')
#빈도 막대 그래프 만들기
#집단별 빈도표 만들기
df_mpg = mpg.groupby('drv',as_index=False)\
.agg(n=('drv','count'))
#막대 그래프
sns.barplot(data=df_mpg,x='drv',y='n');
#countplot으로 빈도 막대 그래프 작성
sns.countplot(data=mpg,x='drv');
#막대 정렬하기
#4,f,r 순으로 막대 정렬
sns.countplot(data=mpg,x='drv',order=['4','f','r']);
#빈도가 높은 순으로 막대 정렬
sns.countplot(data=mpg,x='drv',order=mpg['drv'].value_counts().index);
- 선 그래프(line chart)
- 데이터를 선으로 표현
- 시간에 따라 달라지는 데이터를 표현
- 시계열 데이터: 일정 시간 간격을 두고 나열된 데이터
- 시계열 그래프: 시계열 데이터를 선으로 표현
#시계열 그래프 만들기
#economics 데이터 불러오기
economics=pd.read_csv('economics.csv')
economics.head()
#그래프 그리기
sns.lineplot(data=economics,x='date',y='unemploy');
#x축에 연도 표시하기
#날짜 시간 타입 변수 만들기
economics['date2']=pd.to_datetime(economics['date'])
economics.info() #변수타입 확인
#연 추출
economics['date2'].dt.year
#월 추출
economics['date2'].dt.month
#일 추출
economics['date2'].dt.day
#연도 변수 추가
economics['year']=economics['date2'].dt.year
#x축에 연도 표시하기
sns.lineplot(data=economics,x='year',y='unemploy');
#신뢰구간 제거
sns.lineplot(data=economics,x='year',y='unemploy',errorbar=None);
- 상자그림(box plot)
- 데이터의 분포 또는 퍼져있는 형태를 직사각형 상자 모양으로 표현한 그래프
- 데이터가 어떻게 분포하고 있는지 알 수 있다.
- 평균값만 볼 때보다 데이터의 특징을 더 자세히 이해할 수 있다.
#상자그림 만들기
sns.boxplot(data=mpg, x='drv',y='hwy');
- 데이터 분석 절차
- 변수 검토 및 전처리: 분석에 활용할 변수 전처리
- 변수의 특징 파악, 이상치와 결측치 정제
- 변수의 값을 다루기 편하게 바꾸기
- 변수 간 관계 분석
- 데이터 요약 표,그래프 만들기
- 분석결과 해석
- 변수 검토 및 전처리: 분석에 활용할 변수 전처리
- 데이터 마이닝
- 대량 데이터 세트의 처리 및 탐색을 위한 분석에 사용되는 방법
- 데이터 마이닝 도구와 방법을 사용해 데이터에 숨겨진 패턴과 관계를 찾음
- 원시 데이터 →실용적인 지식
- 위 지식을 사용해 문제를 해결하고 비즈니스 의사 결정의 향후 영향을 분석하여 이윤을 증가
- 데이터 마이닝 과정
- 데이터→선정→목표데이터→사전처리→변형→데이터 마이닝→패턴→해석 및 평가→지식
- Micro data
- 원인과 결과, 관련된 여러 변수들의 인과관계를 모형으로 만들어 검증
- 선행 연구 조사: 선행 연구를 통한 논문, 업계 전문가들의 노하우, 만연한 상식 등을 통해 해당 인과관계 모형 구조화
- 데이터 퀄리티: 타겟하는 특징을 포착하기 위한 데이터 퀄리티(resolution, sampling rate)
- 데이터 변형
- 장점: 현상에 대한 역학적인 분석에 기반하는 논리가 탄탄함
- 단점: 분석에 공수가 많이 들어가 실험이 제한적, 현상에 관여하는 변수가 많고 다양할수록 관계를 구조화하기 어렵고 검증에 많은 데이터나 실험이 필요함
- 원인과 결과, 관련된 여러 변수들의 인과관계를 모형으로 만들어 검증
- Macro data
- 실험군과 대조군을 나누어 적절한 실험을 설계
- 선행연구, 데이터 퀄리티 확인은 micro data와 동일
- 실험설계
- 지역,날씨 등 다른 변수들을 모두 같은 조건으로 통제(선택편향 제거)
- 개입집단과 대조집단 구분
- 각 샘플마다 데이터를 다양한 방식으로 변환 후 예측모델 적용
- 장점: 데이터가 확보되어 있다면 시간 효율적
- 단점: 많은 데이터 필요해 적용 조건이 까다롭고 편함의 유무를 완전히 제거했다고 보증하기 어려움
- 적절한 방법: 보유한 데이터에 따라 문제의 복잡성에 따라 등등 방법이 달라짐
'Data > [SeSAC 성동1기 전Z전능 데이터 분석가]' 카테고리의 다른 글
[성동1기 전Z전능 데이터 분석가] Day 37 (2) | 2023.12.05 |
---|---|
[성동1기 전Z전능 데이터 분석가] Day 36 (0) | 2023.12.04 |
[성동1기 전Z전능 데이터 분석가] Day 34 (2) | 2023.11.30 |
[성동1기 전Z전능 데이터 분석가] Day 33 (3) | 2023.11.29 |
[성동1기 전Z전능 데이터 분석가] Day 32 (1) | 2023.11.28 |