생각이 담아두는 곳

3. 선형분류모형 - 실습 본문

CS/ML

3. 선형분류모형 - 실습

Chang_Tree 2020. 9. 14. 09:26

타이타닉 데이터를 가져온다. train과 test를 각각 가져와야 해서 코드말고 다운을 받았다. 

feature는 위와 같다. 

우리가 구하려는 타겟은 Survived , 생존여부 이다. 0또는 1로 나눠져 있다. 즉 분류문제. 

테스트 데이터는 위와 같이 타겟 데이터가 없는 것을 알 수 있다. 

각 feature의 데이터타입.

데이터 프레임은 다양한 내장함수를 제공한다. 

타이타닉 데이터 시각화. 

null 값이 각 feature 별로 몇 개가 있나 확인. 결측치는 나중에 수정을 해줘야 한다. 

테스트 데이터에서도 마찬가지로 수정. 

위 feature들은 사용하지 않기로 하셨고 제거했다. 당연하지만, 학습에는 도움이 안되는 feature들. 

결측치는 성별에 따른 평균값으로 집어넣음

null 값이 훌륭하게 대체된 모습

sex는 male 과 female 로 구분되어 있는데 이후 우리가 로지스틱 회귀 분석을 위해서는 값을 숫자로 바꿔줘야 편하다. 

남자는 0, 여자는 1로 대체 

데이터 전처리 과정. 통계에 익숙하지 않아 설명을 드리기는 어렵지만, 아마 아웃라이어를 제거한듯 싶다. 

train data에서 타겟을 빼주고 

변수 선언 및  최종 형태 확인, x_validation 은 기존의 train data에서 랜덤으로 20%를 가져와 이따 테스트 데이터로 쓸 것이다. (기존에 다운 받았던 테스트 데이터는 정답(Survived) feature가 없으므로.

로지스틱 회귀 분류 모델을 학습시켜 구한다. 

X_vld를 넣어 예측해본다. 

정확도와 각종 지표 계산

cut-off 가 커질수록 FPR, TPR 이 커지는 것을 확인

ROC 커브 그리기

accuracy 가 최대일 때, cut-off를 가져오고 

predict_proba 는 cut-off 의 default 값이 0.5 이다. 

cut-off 값을 정할 때는, ACC가 최대가 되는 값을 고르거나, F1-score 가 최대가 되는 값을 고른다고 한다. 

 

'CS > ML' 카테고리의 다른 글

3. 선형분류모형  (0) 2020.09.11
2. 선형회귀분석(2) - 실습  (0) 2020.09.10
2. 선형회귀분석(2)  (0) 2020.09.08
1. 선형회귀분석 - 실습  (0) 2020.09.04
1. 선형회귀분석  (0) 2020.09.03
Comments