자주 헷갈리는 함수들

 

train_test_split

stratify

  • 문제: trainX, testX, trainY, testY 로 나눌것이라고 하고, Y는 binary[0, 1]로 구성되어있으며 0: 25%, 1: 75% 있다고 하자
  • trainX 안에서 0, 1인 label을 이루는 ‘데이터’ 비율을 25% 75%로 그대로 유지하고 싶다면 stratify = Y 로 설정해야함
  • 그렇지 않으면 trainX에 10% 90% / testX에 30% 70% 이런식으로 비율이 달라질 수도 있음

사용할 때 간단 요령

  • feature data, label data 분류할 때 헷갈리지 않는 법
    • 인자 순서대로 분리한다고 생각
      1. 아래 예시에서 norm_data[‘value’]를 먼저 train용, test용으로 나눔 -> X_train, X_test
      2. 그 이후 norm_data[‘code’]를 train용, test용으로 나눔 -> y_train, y_test
train_value, test_value, train_code, test_code = 
train_test_split(norm_data['value'], 
                norm_data['code'], 
                test_size=0.2, 
                shuffle=True, 
                stratify=norm_data['code']) # nv: norm value / nc: norm code
'''
이런식으로 구성되어 있으면 뒤의 argument 우선임
value를 train, test로 나눈 후, code를 train, test로 나누는 것
'''

Metrics

classification_report

모델이 0이라고 한 것중 실제로 0인 비율 실제로 0인것 중 모델이 0이라고 한 비율
모델이 1이라고 한 것중 실제로 1인 비율 실제로 1인것 중 모델이 1이라고 한 비율
  • 아래 그림과 같이 레이블로 나타낼 수도 있다