제로베이스의 샘플프로젝트 수업은, 데이터 분석을 공부함에 있어 간단하지만 데이터 분석의 일련의 과정을 공부함과 더불어 다양한 도메인을 접해보는 데에 의의가 있다. 분석의 내용과 코드 또한 주어져 있지만, 하나씩 분석의 내용을 뜯어보고 곱씹어가며 흐름을 익히고, 모르는 코드들을 알아갈 수 있다. 대체적으로 Process3의 머신러닝 과정은 아직 배경지식이 부족하여 이해하지 못한 부분들이 많으나 프로젝트를 하나씩 공부해나갈수록 어렴풋하게나마 조금씩 더 흐름에 올라탈 수 있게 되었다.
20개의 도메인을 기반한 주제 중 개인적으로 흥미가 가는 10개의 프로젝트를 먼저 공부하였다. 각 프로젝트가 다루고 있는 분석 기법, 개인적인 흥미도 등과, 각 프로젝트를 통해 알게된 점 등을 간략히 기록하였다.
프로젝트
- 프로젝트명
- 프로젝트 유형
- 목표
문제상황
- 시나리오
- 문제 정의
- 기대 효과
- 해결방안
- 성과 측정
- 운영
데이터 둘러보기
- 데이터 명세
Process1 | DATA 전처리
- data 형식 확인 - df.shape
- data type 확인 - df.info()
- null값 확인 - df.isnull()sum() 웬만하면 처리해주는 것 좋음
- outlier 확인 - df.describe()
Process1 | EDA
- 데이터 기본정보들 확인
numeric/categorical value 나눔
numeric_list=[]
categorical_list=[]
for i in df.columns:
if df[i].dtypes =='O':
categorical_list.append(i)
else:
numeric_list.append(i)
numeric : 연속형 변수이므로 unique값 많음
- target 변수 탐색
- 숫자형 변수, 범주형 변수 탐색 df.head()
Process2 | Data Readiness Check
- Target Label 생성
- Target Ratio 확인
- 분석 방향성 결정
Process2 | Feature Engineering - 유의미한 변수 선택. 모델 성능 향상 위해.
- Target 변수와 의미있는 변수 선택방법
- bin : data값을 값에 따라 나누는 그룹
- 상관계수 : 연속형 변수만 가지고 함
1. Classification(분류) : bin(통)으로 구분 후 target 변수와의 관계 파악
2. Regression(회귀) : target 변수와의 correlation(상관관계)을 확인
or bin(통)으로 구분 후 target 변수와의 관계 파악
Process3 | Modeling Process
-시각화 준비
# 보통
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
plt.style.use(['dark_background'])
.
- 모델은 숫자 형태 data만 인식 가능 (문자형 변수는 인코딩 필요)
- Feature / Y = 예측하고자 하는 값
Process3 | Model Selection(Regression) - Model 학습
- 선형회귀 모델 ( Ridge, Lasso, Elastic Net )
- 비선형회귀 모델 ( Polynomial, log 모형 )
- Tree 계열 Regression 모델
- bagging 앙상블 ( Randomforest )
- boosting 앙상블 ( lightGBM )
EDA | Exploratory Data Analysis | 탐색적 데이터 분석
Google Colab
```python
# warning 제거
import warnings
warnings.filterwarnings('ignore')
# 연결
from google.colab import drive
drive.mount('/content/drive')
# 경로
import os
os.chdir('/content/drive/MyDrive/경로')
os.getcwd()
```