Etc/Deep Learning

3장(2) 실습 - 결정트리(타이타닉 승객 생존 여부 예측) | 대괄호 인덱싱 | map() | dropna(), drop() | DecisionTreeClassifier() | Confusion Matrix

z.zzz 2021. 7. 20. 16:17

1. 대괄호 인덱싱

대괄호 안에 필요한 컬럼명을 나열해 해당 열의 데이터만 추출

df = df[['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare', 'Survived']]

 

2. map() 메서드

pd.DataFrame['요소'].map({'기존값': 새로운 값})

df['Sex'] = df['Sex'].map({'male':0, 'female':1}) #sex를 0 또는 1의 정수값으로 변환

 

3. dropna()와 drop() 메서드

dropna() : 결측치(NaN)가 존재하는 행을 제거(디폴트)

   - axis 옵션

        - axis = 0(또는 row) : 행 기준 삭제 (default)

        - axis = 1(또는 column) : 열 기준 삭제

drop() : 선택한 값이 삭제된 새로운 객체를 리턴(기존 객체는 변화 X)

   - axis 옵션 적용됨

df = df.dropna()
X = df.drop('Survived', axis=1)                                                    //Survived 열이 삭제된 객체 리턴

 

4. DecisionTreeClassifier() ; 결정 트리 분류기

파라미터 참고 자료 : https://inuplace.tistory.com/548

from sklearn import tree
model = tree.DecisionTreeClassifier()

 

5. confusion matrix; 혼동행렬(분류 모델 성능 평가 지표)

pd.DataFrame() : 데이터를 테이블 형식으로 만듦

  - DataFrame() 파라미터

      - index : 행에 해당하는 인수 전달

      - columns : 열에 해당하는 인수 전달

from sklearn.metrics import confusion_matrix
pd.DataFrame(
    confusion_matrix(y_test, y_predict),
    columns=['Predicted Not Survival', 'Predicted Survival'],
    index=['True Not Survival', 'True Sruvival']
)

output

 

 

정확도, 정밀도, 재현도 참고 자료 : https://leedakyeong.tistory.com/entry/%EB%B6%84%EB%A5%98-%EB%AA%A8%EB%8D%B8-%EC%84%B1%EB%8A%A5-%ED%8F%89%EA%B0%80-%EC%A7%80%ED%91%9C-Confusion-Matrix%EB%9E%80-%EC%A0%95%ED%99%95%EB%8F%84Accuracy-%EC%A0%95%EB%B0%80%EB%8F%84Precision-%EC%9E%AC%ED%98%84%EB%8F%84Recall-F1-Score