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 분류할 때 헷갈리지 않는 법
- 인자 순서대로 분리한다고 생각
- 아래 예시에서 norm_data[‘value’]를 먼저 train용, test용으로 나눔 -> X_train, X_test
- 그 이후 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이라고 한 비율 |
- 아래 그림과 같이 레이블로 나타낼 수도 있다
PREVIOUS경제