131pg. 사이킷런으로 수행하는 타이타닉 생존자 예측
- titanic 파일을 열어 대략적인 데이터 구조/타입을 본다.
- Age, Cabin, Embarked 열의 null값을 fillna로 채워넣는다.
- titanic_df.isnull( )은 bullean값의 DataFrame을 말한다.
- 여기에 .sum( )을 적용하면 각 Column값의 True값의 합을 Series 타입으로 보여준다.
- titanic_df.isnull( ).sum( )에 다시 .sum( )을 적용하면 각 series의 합이기 때문에 0이라는 int값 하나가 나온다.
-value.coutns( ) 각 Column별로 unique한 값이 몇개가 있는지 count해줌
- 그런데 Cabin 값이 유난히 많다. 선실 타입이 중요하지 선실 번호는 중요하지 않으므로 선실 타입만 str을 이용해 추출해보자
그러면 다음과 같은 선실타입을 뽑아낼 수 있다. head(3)이므로 결과값에는 위에 3개만 표시가 됨.
Sex, Survived Column을 기준으로 분류를 한 다음 survived column에 해당하는 non-null 개수를 더한다.
Sex Columnd을 기준으로 분류한 다음 Survived Column에 해당되는 non-null 개수를 더한다.
막대그래프 barplot은 시계열데이터가 아닌 데이터를 다루기에 좋다.
- 성별에 따른 생존률을 그래프로 보자
- Pclass당 남녀별 생존률을 그려보자
- 책에없는 내용이다. 다음과 같이 Pclass와 성별별로 생존자수를 출력해보자. (위의 barplot을 추출한 것)
- apply lambda를 이용해서 age에 따른 구분값 설정한 그래프
titnanic_df라는 데이터에 'Age_cat'이라는 Column을 추가해서 lambda함수 get_category(age)를 적용한다.
sns.barplot을 호출한 뒤, 'Age_cat' Column을 삭제한다.
참고) 만약에 order=group_names를 지운다면 다음과 같은 그래프가 만들어진다. (DataFrame에 저장된 데이터 순서대로 출력되는 것 같음)
-LabelEncoder 클래스
'Cabin', 'Sex', 'Embarked'의 Column값 (string)이 labelencoding 된다(값 유니크한 값들을 숫자형태 변환)
- 데이터 전처리
def transform_features는 위에 설정한 함수를 한번에 끝낼 수 있는 데이터 전처리 함수이다.
141pg. 다시 타이타닉 파일을 불러와서 데이터 전처리부터 실행시켜보자
- transform_features(X_titanic_df) 로 기존의 정의된 함수를 이용해 데이터 전처리를 한다.
- train_test_split를 통해 학습데이터/테스트데이터를 나눈다
- 각각의 사이킷런 알고리즘을 활용해서 학습/예측/평가를 한다.
참고) LogisticRegression 정확도가 책 142pg와는 다르다. (책에는 0.8659라고 나옴. parameter 설정 limit가 원인)
- KFold 교차검증 수행을 한다
dt_clf의 교차검증 estimator는 decisiontree이다.
- stratified KFold로 교차검증 한다 (cross_val_score 함수 사용)
- GridSearchCV 최적 하이퍼 파라미터를 설정한다
- 파라미터 조합 경우의 수는 36개이다. CV값은 5이다. 즉 36x5=180번 train-test 알고리즘을 도는 것이다.
- best_dclf = grid_dclf.best__estimator__ 는 최적의 하이퍼 파라미터 설정으로 학습된 모델 estimator를 best_dclf에 담는다.
- dpredictions에는 테스트 데이터에서 survived에 해당되는 예측값이 들어있다. (X_test에서 Sex 0은 female임)
- 3등급 선실의 여성은 생존했고, 3등급 선실의 남성은 사망했다고 예측할 수 있다. 이러한 예측 정확도는 0.8715이다.
'살콤아내 자기계발 > 파이썬' 카테고리의 다른 글
파이썬 머신러닝 완벽가이드 3주차 정리 (평가 175pg, Diabetes 실습) (0) | 2021.05.04 |
---|---|
파이썬 머신러닝 완벽가이드 3주차 정리 (평가 147pg~) (0) | 2021.04.30 |
파이썬 머신러닝 완벽가이드 2주차 정리 (데이터 전처리 118pg~, ) (0) | 2021.04.28 |
파이썬 머신러닝 완벽가이드 2주차 정리 (사이킷런 87pg~, ) (0) | 2021.04.27 |
파이썬 머신러닝 완벽가이드 2주차 정리 (타이타닉실습 2_isnan, groupby) (0) | 2021.04.23 |