하루 회고
패스트캠퍼스 데이터 사이언스 스쿨 (DAY 17)
데이터 전처리(Preprocessing)
1. 결측값 삭제
1.1 결측값이 존재하는 row를 삭제
1.2 결측값이 존재하는 column을 삭제
1.2.1 일정 개수의 기준을 설정하여, 비결측값이 기준을 넘지 못하면 삭제
※ pandas.DataFrame.dropna의 thresh argument
2. 결측값 대체
2.1 수치형 데이터
- 평균값으로 결측값 대체
- 중앙값으로 결측값 대체
2.2 범주형 데이터
- 최빈값으로 결측값 대체
from sklearn.impute import SimpleImputer
#직접 전처리하는 것도 가능하지만. SimpleImputer를 이용해보자
#결측값을 최빈값으로 대체할 때의 imputer
imputer = SimpleImputer(strategy = "most_frequent")
imputer.fit_transform(dataframe)
#결측값을 중앙값으로 대체할 때의 imputer
imputer = SimpleImputer(strategy = "median")
imputer.fit_transform(dataframe)
※ imputer는 2차원 데이터를 받으며, 반환하는 형식은 nd array.
3. 스케일링/변환
3.1 StandardScaler
- 평균을 0, 분산을 1로 스케일링
- 표준정규분포를 만드는 과정이랑 비슷하다고 생각되었음
3.2 RobustScaler
- 중앙값을 0으로 스케일링
- 아웃라이어가 있을 때 종종 활용함
타이타닉 데이터를 활용한 모델 학습 맛보기
- 의사 결정 트리(DecisionTree)
- 랜덤 포레스트(RandomForest)
- 로지스틱 회귀(LogisticRegression)
- 서포트 벡터 머신(Support Vector Machine)
- 가우시안 나이브 베이즈(GaussianNB)
#Decision Tree
from sklearn.tree import DecisionTreeClassifier
#Random Forest
from sklearn.ensemble import RandomForestClassifier
#Gaussian Naive Bayes
from sklearn.naive_bayes import GaussianNB
#random_state를 받지 않는다
#Logistic Regression
from sklearn.linear_model import LogisticRegression
#Support Vector Machine
from sklearn.svm import SVC
- 어디까지나 연습이므로, 아직은 전처리나 적용한 모델이 최적이라고는 할 수 없다.
- 전처리하는데 옛날에 SPSS 하던 생각나고 재밌었다. imputer를 사용하지 않고 직접 처리하는 과정은 SPSS에서 코드 짜던 거랑 비슷했다.
- TIL은 여러 포맷을 실험중이다. 추후 내용이 추가/삭제될 수 있다.
- 다음주부터는 EDA 프로젝트가 시작된다. 그 전에 연습 겸 개인 작업을 하나 해보고 싶다. 지금 고민중인건 데이콘에서 연습용으로 제공하고 있는 제주도 재난지원금 데이터.
'Today I Learned' 카테고리의 다른 글
20210322_TIL (0) | 2021.03.24 |
---|---|
20210321_TIL (0) | 2021.03.22 |
20210319_TIL (0) | 2021.03.20 |
20210318_TIL (0) | 2021.03.19 |
20210316_TIL (0) | 2021.03.17 |