1. CRIPS-DM (비즈니스 문제해결 방법론)

1.1 Business Understanding - 가설 수립
- 문제를 정의하고 요인을 파악하기 위해서 가설을 수립
- 귀무 가설 : 기존 연구 결과로 이어져 내려오는 정설
- 대립 가설 : 기존의 입장을 넘어서기 위하 새로운 연구 가설을 대립가설
- 우리가 수립하는 가설을 대립가설이라고 부르기도 합니다
가설 수립 절차
- 해결해야할 문제가 무엇인가(목표, 관심사, y)
- Y를 설명하기 위한 요인을 찾아라 (x)
- 가설의 구조를 정의하라 (x->y)
1.2 Data Understanding
- 데이터 원본 식별 및 취득
- 가설에서 도출된 데이터의 원본 확인
- 있는 데이터(그대로 사용가능, 가공해야 사용 가능)-> 검토 및 과제 수행
- 없는 데이터
- 취득 가능 : 취득 비용 산정 및 과제 수행
- 취득 불가능 : 정보의 의미 정의(정보 분할, 최대한 가용한 데이터 영역으로 만들기)
- 데이터 탐색 : EDA, CDA
- EDA(Exploratory Data Analysis)
- 개별 데이터의 분포, 가설이 맞는지 파악
- NA,이상치 파악
- CDA(Confirmatory Data Analysis)
- 탐색으로 파악하기 애매한 정보는 통계적 분석 도구 사용
- 정리된 2차원 구조의 데이터셋을 분석하는 방법
- Exploratory Data Analysis 탐색적 데이터 분석
- Confirmatory Data Analysis 확증적 데이터
초기가설, 준비된 데이터셋 -> EDA(그래프, 통계량), CDA(가설검정, 실험)
=> 가설 확인, 전처리 대상 정리, 데이터와 비즈니스에 대해 더 잘 이해
이 경우 다음의 사항을 알아야함
1. (언제, 어떤) 그래프를 그리고 (어떻게) 해석
2. (언제, 어떤) 통계량을 구하고 (어떻게) 해석
3. (언제, 어떤) 가설검정 방법을 사용하고 (어떻게) 해석
- 단변량 분석 : 개별 변수의 분포
- 이변량 분석1: feature와 target간의 관계(가설을 확인하는 단계)
- 이변량 분석: feature들 간의 관계
1.3 Data Preparation
개요
- 모든 셀에 값이 있어야함
- 모든 값은 숫자이어야 함
3.(옵션) 값의 범위를 일치시켜야 함
수행되는 내용
1.4 모델링
- 데이터로부터 패턴을 찾는 과정
- 오차를 최소화 하는 패턴
- 결과물 : 모델(모델은 수학식으로 표현됨)
모델링을 위해 필요한 두가지
- 학습 데이터
- 알고리즘
2. 시각화 라이브러리
- 데이터 시각화의 목적
- 통계적인 해석을 넘어, 비즈니스의 인사이트를 파악하는 것
- 한계
- 요약된 정보가 표현되기 떄문에, 요약하는 관점에 따라 해석의 결과가 달라질 수 있음
- 어떤 식으로 든 요약을 하면, 정보의 손실이 발생
plt.plot('X축','Y축',data=data)
plt.show()
plt.plot('X축','Y축',data=data)
plt.xticks(rotation=30) #30도 회전
plt.xlabel('x축 이름')
plt.ylabel('y축 이름')
plt.title('title')
plt.show()
2.1 범례,그리드 추가
plt.plot(data['Date'], data['Ozone'], label = 'Ozone') # label = : 범례추가를 위한 레이블값
plt.plot(data['Date'], data['Temp'], label = 'Temp')
plt.girt()
plt.legend(loc='upper right')
2.2 축 범위 조정하기
plt.xlim(0,100)
plt.ylim(0,10)
2.3 그래프 크기 조정
plt.figure(figsize(a,b))
2.4 평균선과 평균값 텍스트
plt.axhline(np.mean(data['Ozone']), color = 'grey', linestyle = '--')
plt.text(5, 41, np.mean(data['Ozone']))
2.5 여러개의 그래프 그리기

plt.figure(figsize = (12,8))
plt.subplot(3,1,1)# 옆으로 그리고 싶으면 plt.subplot(1,3,1)
plt.plot('Date', 'Temp', data = data)
plt.grid()
plt.subplot(3,1,2)
plt.plot('Date', 'Wind', data = data)
plt.subplot(3,1,3)
plt.plot('Date', 'Ozone', data = data)
plt.grid()
plt.ylabel('Ozone')
plt.tight_layout() # 그래프간 간격을 적절히 맞추기
plt.show()